STC8H4K64LCD的串口2数据
大家有碰到STC8H4K64LCD这款的串口2中断接收,死活接收不到数据,发送正常,串口1发送接收都没问题,两个程序一样,用的是官方库使用的口是P1.0和P1.1,还有DMA功能发送也进不了中断,只能使用定时器间隔一段时间,发送一次数据!主要问题就是接受数据不正确?有没有什么解决方案? STC8H4K64TLCD ?STC8H4K64TLCD 的程序 和 STC8H8K64U兼容
STC8系列4组串口同时通信的程序,Modbus 演示程序;可共享T2做波特率发生器 - 串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16 国芯技术交流网站 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
神农鼎 发表于 2024-7-12 20:34
STC8系列4组串口同时通信的程序,Modbus 演示程序;可共享T2做波特率发生器 - 串行口,DMA支持的4组串口 ...
谢谢,修改后还是不行,但是发现接收的数据更多,怀疑波特率的问题,果然我把波特率改为9600接收就正常了 神农鼎 发表于 2024-7-12 20:34
STC8系列4组串口同时通信的程序,Modbus 演示程序;可共享T2做波特率发生器 - 串行口,DMA支持的4组串口 ...
现在还有一个问题就是我看官方例程上都是串口接收使用DMA需要开启的有串口中断,如果我不开启串口中断的话,开启DMA中断,DMA还能正常使用?因为感觉串口中断使用的太频率了,本来DMA就是为了解决中断频繁的问题,结果相当于又加了个DMA中断 神农鼎 发表于 2024-7-12 20:33
STC8H4K64TLCD ?
STC8H4K64TLCD 的程序 和 STC8H8K64U兼容
我用的就是8H8K的官方程序库!我把波特率降低了,就完全都正常了,可能就是中断太频繁了 DAM-串口,可以 255个字节以下才产生中断一次 本帖最后由 梁工 于 2024-7-13 16:47 编辑
张彦雷 发表于 2024-7-13 09:47
我用的就是8H8K的官方程序库!我把波特率降低了,就完全都正常了,可能就是中断太频繁了 ...
跑22.1184MHz,4个串口,每个都115200同时双工收发,占CPU时间不到20%,绝对没问题,你可测试“板凳”发的例程,4个串口同时通信的,100万个字节测试,保证你一个不错一个不丢!
对于现在的MCU而言,串口115200的波特率其中断都是慢速事件(86.6us才中断一次),不算频繁。像STC8051U播放I2S的声音,48KHz采样、96KHz中断更新数据,都轻松拿下,中断一次处理不过1~2us而已(PCM播放无解压缩)。
如果是你改动后的程序出现问题,请详细检查程序逻辑,不要有任何的等待。 张彦雷 发表于 2024-7-13 09:23
现在还有一个问题就是我看官方例程上都是串口接收使用DMA需要开启的有串口中断,如果我不开启串口中断的 ...
首先,串口即使用115200的波特率,其中断间隔是86.8us,对于MCU来说并不算频繁,所以中断接收不会有问题,可以测试“板凳”发的程序,4个串口同时双工收发的。
其次,使用DMA接收中断,不需要再开串口中断,但是要指定DMA接收的字节数(1~256字节),接收的字节数一到,就会进DMA中断。 DMA传送数据的功能还未用过,关注学习下
页:
[1]