请先别修改程序, 直接下载"02A-串口2中断收发(收发并联单线通讯)"里的"UART2.hex"测试, 主频选择11.0592MH ...
感谢回复,我先测试下 梁工 发表于 2024-11-20 15:40
请先别修改程序, 直接下载"02A-串口2中断收发(收发并联单线通讯)"里的"UART2.hex"测试, 主频选择11.0592MH ...
加延迟是可以解决,但我们要并发处理数据,后面波特率通讯实际要设计成可变的,可能还要提高速率,在中断中做延迟和判断不太符合应用要求。UART1是不是和234不一样,UART1就不需要等待1个波特的时间 梁工 发表于 2024-11-19 15:05
将收发接在一起,发送时也接收到自己发的,转接收时,清除RI标志试试。
存在 4路并发,且波特率会变速到 0.5mhz ~ 1mhz,sysclk工作在 40mhz,1bit 就是 80T ~ 40T,如果并发,只能异步,就要在 串口 和 pwmA(定时多路并发发送),在插入一个中间优先级的4路定时器的 pwmb,来延迟 0.8etu,也就是 32T ~ 64T 开启 REN。有点复杂,如果在串口 isr里头while 来delay,那就太影响其他路uart isr 了,但如果用掉了 pwmb,定时器不够用了。
问下有没更好的思路或解决方案。
梁工 发表于 2024-11-20 15:40
请先别修改程序, 直接下载"02A-串口2中断收发(收发并联单线通讯)"里的"UART2.hex"测试, 主频选择11.0592MH ...
继续做了些测试得到如下结论
当串口用8位数据传输时,串口1,2,3,4都是先进TI中断再进RI中断,且4路的两个中断时间间隔基本一致。
当串口用9位数据传输时,串口2 ,3,4 不变和8位传输一致,但串口1变成先进RI中断再进TI中断,并且间隔时间超过了您昨天说的0.8bit时间。
这样看来其实时2,3,4路正常,串口1特殊些。
最后还是想确认下除了手头这个D版本其他版本会不会也时这样?
页:
1
[2]