博士
最后登录1970-1-1
在线时间 小时
注册时间2014-10-31
|
本帖最后由 11kxmx 于 2015-9-7 07:57 编辑
最近又重新作串口試驗:
unsigned char m=0x20,n=3;
int main(void)
{
/* USART1 config 115200 8-N-1 */
USART1_Config();
//printf("\r\n this is a usart printf demo \r\n");
printf("\r\n %d \r\n",m);
for(;;)
{
}
}
為什麼用野火附帶的串口接收軟件,收到是32
但利用我自編的上位機軟件(16進制接收)收到的是一串字符 0A 20 33 32 20 0D 0A
若m=0xF7,則 收到的是 0A 20 32 34 37 20 0D 0A
很顯然中間的紅字是32和247的ASCI碼,前後的5個字符又是怎麼冒了來的
而我的上位機軟件在51單片機開發板上實驗:直接用SBUF=m,則沒有前後的尾巴
好象與\r\n 有關,但將發送語句 改成printf("%d",m)結果是
m=0x20時收到 32 m=0xF7時收到 34 37 這又是什麼意思
另外我想直接发0-255的8位二进制数,直接串口发送语句
USART_SendData(USART1, (uint8_t) m);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
则无论用野火附带串口软件还是自己的软件,上位机什么也收不到,请问高手是怎么回事?
|
|