飞云 发表于 2019-4-10 08:33 谢谢,谢谢问题解决了 。找到问题了上边波特率我打错了它是加倍下的4800,后来在普中(卖开发板的带的串口调试工具)改了,问题就出现上述发送CC后串口不停返回值,之后又用了其他串口调试软件,显示就正常了 |
| 求指点呀,调了一下午加晚上了 头疼 |
|
后来发现和波特率的设置有问题,硬件单片机的晶振是12MHZ的。 修改后传一些数没问题,但传某些数如CC就会出现端口不停传一些不知道的数.求指点呀 代码如下
|
| 你这里可能是串口初始化有问题 ,你看看用的是什么型号的单片机,然后在STC-ISP那个下载程序软件里面可以找到对应型号的串口初始化程序,你修改一下应该就可以的了 |
| 等待大佬 |
不要沉呀![]() ![]() ![]() ![]() ![]() |
lizzz 发表于 2019-4-9 21:22 程序本身没有什么问题,主要是因为晶振频率不合适,导致波特率误差太大,需要设置加倍。 void UartInit(void) //4800bps@12.000MHz { PCON |= 0x80; //使能波特率倍速位SMOD SCON = 0x50; //8位数据,可变波特率 TMOD = 0x20; //设定定时器1为8位自动重装方式 TL1 = 0xF3; //设定定时初值 TH1 = 0xF3; //设定定时器重装值 TR1 = 1; //启动定时器1 ET1 = 0; //禁止定时器1中断 EA=1; //允许总中断 ES=1; //允许串口中断 } |