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

关于STM32F030F4P6 串口接收发送问题

[复制链接]
su-409464 提问时间:2018-3-7 08:52 /
阅读主题, 点击返回1楼
收藏 评论22 发布时间:2018-3-7 08:52
22个回答
su-409464 回答时间:2018-3-7 14:55:35
wudianjun2001 发表于 2018-3-7 12:55
中断标志好像没清除吧
还有一般不要在中断里发送数据,收到后到缓冲区,然后在主循环里发 ...

http://bbs.21ic.com/icview-160999-1-1.html

只要清中断标志位就行吗? 中断接收溢出位呢?
无薪税绵 回答时间:2018-3-7 15:03:19
本帖最后由 无薪税绵 于 2018-3-7 15:06 编辑

串口处理速度跟你的波特率有关系。

比如:
波特率115200 = 115200 (位/秒)
如果没有校验位,就应该除以 10,得到的是每秒字节数:
波特率115200 = 115200 (位/秒) = 11520 (字节/秒)
再除以 1024,就是每秒 KB 数:
波特率115200 = 115200 (位/秒) = 11.25 (KB/秒)

如果有一位奇偶校验位,就应该除以 11,得到的是每秒字节数。
波特率115200 = 115200 (位/秒) = 10.27 (KB/秒)

另外:
串口发送数据,不建议直接使用字符串,除非你传输的内容只有几个符。
一般要求使用数组来传送,比如先定义100字节长的数组,
每次只传100字节,传完了,再传剩下的100字节。
否则有可能会因串口传数据时占用时间过长,导致其它不稳定因素。
而且,使用数组传送,可以避免字符串中包含汉字或者全角字符,导致溢出的问题。


评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

butterflyspring 回答时间:2018-3-7 15:25:31
你应该看看串口发送的接口函数,有根据长度的,有根据timeout的,如果你的长度不定,什么时候发送随机,那么你就要修改串口接收的接口了.如果你接收函数的长度size写的是4,但是你发的是5个byte,你下一次就会出现busy的情况,你就要请一下标志位了..

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

123

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版