你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

F103rct6,串口2空闲中断,DMA方式接收,TX引脚设置为模拟输入后再设置为TX功能,此时必须从新打开DMA接收,并且还的延时打开,不延时不能正常接收。为

[复制链接]
村中小孩OK 提问时间:2023-10-27 18:30 / 未解决

微信图片_20231027182527.png

F103rct6,串口2空闲中断,DMA方式接收,TX引脚设置为模拟输入后再设置为TX功能,此时必须从新打开DMA接收,并且还的延时打开,不延时不能正常接收。

1.为什么只改变引脚恢复TX后,需要再次打开DMA?

2.为什么必须延时打开DMA,是什么原因?

收藏 评论5 发布时间:2023-10-27 18:30

举报

5个回答
watershade 回答时间:2023-10-27 19:01:03

不是特别理解你的意思是即便你只改变UART的TX,也需要重新开启UART的RX接收?

村中小孩OK 回答时间:2023-10-27 20:40:14

watershade 发表于 2023-10-27 19:01
不是特别理解你的意思是即便你只改变UART的TX,也需要重新开启UART的RX接收?
...

是,将tx引脚配置为模拟输入模式,然后再配置成tx模式,就需要再次打开dma接收,否则串口不能正常接收数据

watershade 回答时间:2023-10-28 10:16:33

村中小孩OK 发表于 2023-10-27 20:40
是,将tx引脚配置为模拟输入模式,然后再配置成tx模式,就需要再次打开dma接收,否则串口不能正常接收数 ...

那请问你的TX引脚有没有绑定某一个DMA通道?

另外其实你没有描述你TX引脚的功能和连接。你的PA2引脚是功能复用的吗?和你UART进行通讯的是什么设备?因为有一类设备的UART是单线半双工的,它的TX和RX实际是一根线分时复用的。有些电路给的参考电路时MCU这一侧将TX和RX通过一个电阻连接在一起和这些设备通讯。类似的设备可以参考TMC2209.

村中小孩OK 回答时间:2023-10-28 22:17:10
watershade 发表于 2023-10-28 10:16
[md]

那请问你的TX引脚有没有绑定某一个DMA通道?

查到原因是串口通讯的另一个芯片发生了复位,rx引脚一直低电平,单片机接收发生帧错误,重新启动dma后才能正常接收,但是帧错误后为什么必须重启dma?
watershade 回答时间:2023-10-29 16:42:16

村中小孩OK 发表于 2023-10-28 22:17
查到原因是串口通讯的另一个芯片发生了复位,rx引脚一直低电平,单片机接收发生帧错误,重新启动dma后才 ...

DMA接收数据有严格的限制,除了起始地址必须保证4字节对齐,必须在可以访问的地址范围之外,你设定的发送和接收长度必须满足。我的理解帧错误一定是数据未能正常发送,或者发送了其中一部分。dma和外设直接的协商。(比如uart要求dma将rx的数据保存到那个位置,保存多少数据,每次保存地址要不要加一。是circuit模式还是其他模式。)所以如果你这次的任务失败当然要停止上次的任务,然后安排下一次的任务。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版