各位大佬,一个简单的串口发送程序,代码如下
- void main()
- {
- UartInit();
- while(1)
- {
- UsartSend(12345);
- Delay_ms(1000);
- }
- }
- void UartInit(void) //4800bps@11.0592MHz
- {
- PCON |= 0x80; //使能波特率倍速位SMOD
- SCON = 0x50; //8位数据,可变波特率
- TMOD &= 0x0F; //清除定时器1模式位
- TMOD |= 0x20; //设定定时器1为8位自动重装方式
- TL1 = 0xF4; //设定定时初值
- TH1 = 0xF4; //设定定时器重装值
- ET1 = 0; //禁止定时器1中断
- TR1 = 1; //启动定时器1
- }
- void UsartSend(int temp)
- {
- u8 i;
- SendTemp[6]=temp / 10000 + 48; //百位
- SendTemp[5]=temp % 10000 / 1000 + 48; //十位
- SendTemp[4]=temp % 1000 / 100 + 48; //个位
- SendTemp[3]='.';
- SendTemp[2]=temp % 100 / 10 + 48; //十分位
- SendTemp[1]=temp % 10 + 48; //百分位
- SendTemp[0]='\n' ;
- for(i=6;i>=0;i--)
- {
- if(!TI)
- {
- SBUF=SendTemp[i];
- while(!TI); //等待发送完成
- TI=0;
- }
- }
- }
复制代码
串口接收到的数据如下,怎么会有乱码呢
123.45
|