[HMI/GUI] 请教N9H20串口收发问题

[复制链接]
 楼主| pobomud 发表于 2023-5-22 10:01 | 显示全部楼层 |阅读模式
最近做触摸屏项目,用到N9H20K31N,硬件使用了低速串口1来通讯,按官方例程,目前发现每次只能接收不超过16字节,超出会出现漏码,还有种情况,刚好16字节的话,有时候会出现第一个字节改变为第16字节,查询手册高速口有64字节FIFO,低速口为16字节FIFO。怎么保证稳定接收大量字节呢?可以关闭FIFO自己使用传统的接收方式吗?
由于串口的FIFO隔着一层,没找到怎么控制FIFO的方法,于是我又配置了EDMA,本想使用EDMA接收串口1数据,目前倒是能接收,但又有一个问题,EDMA只能空,1/4,1/2,3/4,满中断,不发生IRQ中断,指定的内存里面找不到数据,怎么实现任意字节的接收呢?
Annie556 发表于 2023-5-24 11:14 | 显示全部楼层
将FIFO缓冲区大小增加到64字节,可以接收更多的数据而不会出现漏码
B1lanche 发表于 2023-5-24 12:20 | 显示全部楼层
当FIFO缓冲区满时,会产生一个中断,可以利用这个中断来处理接收到的数据
Charlotte夏 发表于 2023-5-24 13:25 | 显示全部楼层
可以关闭FIFO用传统方式,但是会占用较多的CPU资源
Carina卡 发表于 2023-5-24 14:29 | 显示全部楼层
那你配置成高速的端口呗
Allison8859 发表于 2023-5-24 16:27 | 显示全部楼层
试试优化数据传输算法,提高数据的传输效率和稳定性
Emily999 发表于 2023-5-24 17:36 | 显示全部楼层
还真没遇到过高速和低速的这种问题呢,有点意思
Belle1257 发表于 2023-5-25 07:02 | 显示全部楼层
要不你用软件定时器来实现任意字节的接收?
alxd 发表于 2023-5-25 08:17 | 显示全部楼层
EDMA要注意在使用周期传输模式时,需要设置相应的寄存器来实现数据的自动重复传输
Candic12e 发表于 2023-5-25 10:26 | 显示全部楼层
检查一下通道参数设置吧
Betty1299 发表于 2023-5-25 11:54 | 显示全部楼层
你得在EDMA通道的参数配置中指定正确的内存地址才行的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部