|
我用串口通信發(fā)送 字符、字符串、還是空格啥的,pc機(jī)串口助手上偶爾會(huì)顯示第一個(gè)字符錯(cuò)誤。
程序波特率和串口助手上的都一致,不明白為什么會(huì)出現(xiàn)這種情況
單片機(jī)源程序如下:
- void UART_Init( void )
- {
- TMOD = 0x20;
- SCON = 0x50;
- TH1 = 0xFD;
- TL1 = 0xFD;
- TR1 = 1;
- }
- void Uart1Send( uchar c )
- {
- SBUF=c;
- while(!TI)
- TI=0;
- }
- void Uart1Sends( const uchar *str )
- {
- for(; *str!='\0'; str++)
- {
- Uart1Send( *str );
- }
- }
- void cktx()
- {
- Uart1Send(0x0d);
- Uart1Send(0x0a);
- Uart1Sends("SET: ");
- Uart1Sends("TempH=");
- Uart1Send(temph/10+'0');
- Uart1Send(temph%10+'0');
- Uart1Sends(" TempL=");
- Uart1Send(templ/10+'0');
- Uart1Send(templ%10+'0');
- Uart1Send(0x0d);
- Uart1Send(0x0a);
- Uart1Sends(" HumiH=");
- Uart1Send(humih/10+'0');
- Uart1Send(humih%10+'0');
- Uart1Sends(" HumiL=");
- Uart1Send(humil/10+'0');
- Uart1Send(humil%10+'0');
- Uart1Send(0x0d);
- Uart1Send(0x0a);
- Uart1Sends("NOW: ");
- Uart1Sends("Temp:");
- Uart1Send(tempvalue%100/10+'0');
- Uart1Send(tempvalue%100%10+'0');
- Uart1Send('.');
- Uart1Send(a*0.625+'0');
- Uart1Sends(" C");
- Uart1Sends(" Humi:");
- Uart1Send(humi/10+'0');
- Uart1Send(humi%10+'0');
- Uart1Sends(" %RH");
- Uart1Send(0x0d);
- Uart1Send(0x0a);
- Uart1Send(0x0d);
- Uart1Send(0x0a);
- delay_ms(10);
- }
復(fù)制代碼
|
-
捕獲.PNG
(14.26 KB, 下載次數(shù): 36)
下載附件
2020-7-20 14:57 上傳
如圖,偶爾會(huì)出現(xiàn)多余的字符
|