【已解决】求助:STC11F02E串口通讯乱码
本帖最后由 wangxiangtan 于 2024-1-10 18:28 编辑前天晚上焊接的STC11F02E最小系统板,晶振频率24MHz,LED正常点亮:
用手册里面的P3串口程序测试,这个程序的晶振频率是18.432MHz,
接收的是乱码:
搜了一下说是波特率的问题,又试了STC-ISP里面的波特率程序:
试来试去还是接收不到正常数据,字符a、数字1都收不到,
网上搜都是用11.0592、22.1184这种能0误差生成波特率的晶振频率,
刚翻出来一个11.0592的晶振,要不要换上???
还有个没字符的晶振,跟普中开发板上CH430G芯片旁边的一样,不知道频率多少,
老哥们支支招
1, 烧录时选择下次的时钟源是外部晶振
===烧录成功后,停电上电,新的设置生效
2,程序中要按外部时钟频率计算
深圳国芯人工智能有限公司-工具软件 (stcai.com)
#define FOSC 11059200L //System frequency
#define BAUD 9600 //UART baudrate
======================================
#define FOSC 24000000L //System frequency
#define BAUD 9600 //UART baudrate
神农鼎 发表于 2024-1-10 07:53
#define FOSC 11059200L //System frequency
#define BAUD 9600 //UART baudrate
莫非我一直在用内部晶振……{:4_167:} 神农鼎 发表于 2024-1-10 07:53
#define FOSC 11059200L //System frequency
#define BAUD 9600 //UART baudrate
老哥,这次用了官方手册原版程序,修改#define FOSC 24000000,ISP下载界面取消勾选使用内部IRC,仍然是乱码:
神农鼎 发表于 2024-1-10 07:53
#define FOSC 11059200L //System frequency
#define BAUD 9600 //UART baudrate
我用ISP的串口波特率重新计算了一遍,用这个重新计算的初始化代码接收数据正常了:
虽然看到你这个解决了,但是我也想给你分享一下我遇见的情况. 我这边使用一个USB-ttl工具连接了单片机的串口用来接受数据.接受数据是正常的,但是每次在shell里发送数据(每一个按钮按下的时候)的时候都会出现一个 奇怪的字符. 后来发现是因为RX 和TX交叉,并且线长10CM导致的, 如果你以后也遇见这种情况可以先看看是不是线影响了信号 赶紧换上11.0592.
程序里就可以用 #define FOSC 11059200L 了
然后下载,还是需要选择 外部硬件的晶振。
就可以成功了 {:4_165:} 早期芯片内部晶振和外部晶振使用isp切换,最新的都是固件切换了吧。
页:
[1]