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

查看: 1836|回复: 5

STM32F4 USART流控

[复制链接]

1

主题

4

回帖

0

蝴蝶豆

新手上路

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

使用道具 举报

1

主题

4

回帖

0

蝴蝶豆

新手上路

最后登录
2018-5-16
 楼主| 发表于 2015-1-12 20:58:17 | 显示全部楼层
怎么没人回复啊?有人遇到过类似问题么?或者正常使用流控信号么?
回复 支持 反对

使用道具 举报

307

主题

3125

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-7-17
发表于 2015-1-13 16:35:51 | 显示全部楼层
帮顶,求解。建议楼主发帖提问时候,发布悬赏贴,这样网友会更热情
回复 支持 反对

使用道具 举报

1

主题

4

回帖

0

蝴蝶豆

新手上路

最后登录
2018-5-16
 楼主| 发表于 2015-1-14 21:46:04 | 显示全部楼层
昨天连上示波器测试了一下,发现正常通信时,STM32F4接收到数据后,232端RTS变为负电压(无效态),中断读取数据后,RTS有效(正电平),流控功能正常,出现问题的原因是:计算机端在CTS无效时仍在继续发送,可能未及时检测到CTS,对比过TL16C754C手册,说接收方可能不能及时检测到CTS,可能继续发送一个字节,但在STM32F4中,由于多接收这一个字节的数据,上一个接收数据未读取,新数据停止位后,RTS信号居然又恢复有效(变为正电平),按照手册,数据未读取时RTS应该无效才对,不知道这算不算芯片的BUG?
回复 支持 反对

使用道具 举报

1

主题

4

回帖

0

蝴蝶豆

新手上路

最后登录
2018-5-16
 楼主| 发表于 2015-1-14 21:55:37 | 显示全部楼层
沐紫 发表于 2015-1-13 16:35
帮顶,求解。建议楼主发帖提问时候,发布悬赏贴,这样网友会更热情

论坛新人,没法过悬赏帖,还不知道怎么发,请管理员支持一下。
回复 支持 反对

使用道具 举报

1

主题

4

回帖

0

蝴蝶豆

新手上路

最后登录
2018-5-16
 楼主| 发表于 2015-1-14 22:07:13 | 显示全部楼层
暂时的解决办法:RTS引脚上拉,需要阻塞时,不关闭接收中断,设置RTSE = 0,RTS信号变更为无效;恢复时,重新设置RTSE = 1,回复硬件流控,大家还有更好的处理办法么?
回复 支持 反对

使用道具 举报

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