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

STM32F4 USART流控

[复制链接]
zhaorunhui 提问时间:2015-1-12 19:05 /
       有没有人用过STM32F4的硬件流控,项目中需要使用UART流控(RTS、CTS),我的应用使用STM库函数进行编写,配置部分是用STM32CubeMX软件生成,使用中遇到以下问题:
       进行通信阻塞测试时,PC机撤销RTS后,F4能正常响应CTS信号,发送阻塞(超时);但F4阻塞测试时,我设想的是禁用接收中断后(测试程序使用中断方式),收到第一个字符后,缓冲区满,F4的RTS应撤销,从而阻塞PC机发送,但测试发现,F4禁止接收中断后,PC端CTS信号一直有效,仍然可以继续发送,除非将RTSE设置为0才可以阻塞PC机发送。
       程序设定断点后,经测试,禁用接收中断后,未进入过接收中断处理部分(即未读取过DR),但不知道F4的RTS信号为何一直不撤销,不是说接收缓冲区慢的时候就撤销么?RTS需要什么特殊配置么?大家有没有碰到过类似问题?
收藏 评论5 发布时间:2015-1-12 19:05

举报

5个回答
zhaorunhui 回答时间:2015-1-12 20:58:17
怎么没人回复啊?有人遇到过类似问题么?或者正常使用流控信号么?
沐紫 回答时间:2015-1-13 16:35:51
帮顶,求解。建议楼主发帖提问时候,发布悬赏贴,这样网友会更热情
zhaorunhui 回答时间:2015-1-14 21:46:04
昨天连上示波器测试了一下,发现正常通信时,STM32F4接收到数据后,232端RTS变为负电压(无效态),中断读取数据后,RTS有效(正电平),流控功能正常,出现问题的原因是:计算机端在CTS无效时仍在继续发送,可能未及时检测到CTS,对比过TL16C754C手册,说接收方可能不能及时检测到CTS,可能继续发送一个字节,但在STM32F4中,由于多接收这一个字节的数据,上一个接收数据未读取,新数据停止位后,RTS信号居然又恢复有效(变为正电平),按照手册,数据未读取时RTS应该无效才对,不知道这算不算芯片的BUG?
zhaorunhui 回答时间:2015-1-14 21:55:37
沐紫 发表于 2015-1-13 16:35
帮顶,求解。建议楼主发帖提问时候,发布悬赏贴,这样网友会更热情

论坛新人,没法过悬赏帖,还不知道怎么发,请管理员支持一下。
zhaorunhui 回答时间:2015-1-14 22:07:13
暂时的解决办法:RTS引脚上拉,需要阻塞时,不关闭接收中断,设置RTSE = 0,RTS信号变更为无效;恢复时,重新设置RTSE = 1,回复硬件流控,大家还有更好的处理办法么?
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版