DSP下面printf串列埠輸出的實現

2021-04-13 23:44:06 字數 1113 閱讀 1708

#define

swap(x, y) 

unsigned 

char

printf_buffer[

50] =;

#define

mod(x, y) ((x) - (y) * ((unsigned long)(x) / (unsigned long)(y)))

unsigned 

char

alphabet 

=   ;

void

number(unsigned 

char

*dst, unsigned 

long

*offset, 

long

num, 

intbase

)start =*

offset;

while

(num 

>=0)

end =*

offset -1

;len 

=((end 

-start) +1

) /2;

for(i =0

; i 

<

len; i++)

swap(dst 

+start 

+i, dst 

+end 

-i);

}int

myprintf(

const

char

*fmt, ...)

break

;default

:break;}

fmt++;}

else

}va_end(args);

printf_buffer[i++] =

'/0';

return

uart_send((

const

char

*)printf_buffer);}

uart_send 是串列埠驅動提供的傳送函式.

編譯器在呼叫函式的時候會把可變引數依次壓入fmt引數後面,va_start將args賦值為fmt後乙個位址,然後根據fmt裡面的描述在適當的時候,依次用va_arg取得可變引數並改變args的值使其指向下乙個引數的位址。

使用printf向串列埠輸出資料

引自 要在iar中使用printf向串列埠輸出資料,需要加入如下的函式原型,它的目的是將printf指向串列埠一這個裝置並向這個裝置輸出資料。ifdef gnuc with gcc raisonance,small printf option ld linker libraries small pr...

Ubuntu下面使用串列埠

首先安裝minicom,命令如下 sudo apt get install minicom我是使用的usb轉串列埠,在 dev目錄下面能夠找到ttyusb0,所以我啟動minicom的命令如下 sudo minicom d dev ttyusb0注意,這裡一定要使用sudo,否則會提示沒有許可權。進...

DSP串列埠通訊斷開連線

斷開握手協議實現結果 1 本身可以正常收發資料 2 當收到十六進製制的11時,則斷開通訊 3 直到收到十六進製制的aa時,又可以正常收發資料 include dsp2833x device.h include dsp2833x examples.h void scic init void unsig...