诗小白 发表于 2024-6-12 11:22:32

STC8A8K64D4单片机使用串口1和串口2通讯时,程序里面的变量出现错误。

本帖最后由 诗小白 于 2024-6-12 13:04 编辑

现象:串口1和串口2分别与屏幕通信,串口1发送数据时(关闭总中断,发送结束开总中断),串口2有数据回来,串口1发送的数据是错误的(串口助手读取数据),串口1直接给常量发送就是正常的,但凡带有变量处理发送就会数据异常。
串口1发送数据时,串口2无数据接受时,串口1所发出的数据是正常的。

串口初始化:
#define FOSC 12000000UL
#define      BRT (65536-FOSC/115200/4)
#define      BRT2 (65536-FOSC/19200/4)


串口中断服务函数:


串口1的数据发送


串口2的数据发送函数


main函数初始化



串口1发送:Variable_icon(0x3240,0+language*2),会出现 “0+language*2” 所得结果错误。

串口1发送:Variable_icon(0x3240,1),该函数发送的数据是正常的。

现主要问题是串口1发送数据时,串口2无法正常关闭(或者不是这个原因),串口1所发出的数据错误。





欢迎哈哈哈3 发表于 2024-10-8 18:44:58

程序能打包发过来看看?
页: [1]
查看完整版本: STC8A8K64D4单片机使用串口1和串口2通讯时,程序里面的变量出现错误。