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

关于STM32F030F4P6 串口接收发送问题

[复制链接]
su-409464 提问时间:2018-3-7 08:52 /
阅读主题, 点击返回1楼
收藏 评论22 发布时间:2018-3-7 08:52
22个回答
回答时间:2018-3-7 11:10:22
普通的串口接收就一个字节
anobodykey 回答时间:2018-3-7 11:17:53
su-409464 发表于 2018-3-7 10:53
好像真的是 溢出了~~~
几个字符可以,但是一长串 字符就 挂了!!!!

ST的串口没有硬件缓存区,你得用软件实现,譬如申请一个100字节的缓存区,在中断中把收到的数据放到缓存中,在主函数中进行回显操作,论坛里有很多这样的例程的
su-409464 回答时间:2018-3-7 11:20:20
安 发表于 2018-3-7 11:10
普通的串口接收就一个字节

好的谢谢!
su-409464 回答时间:2018-3-7 11:28:53
anobodykey 发表于 2018-3-7 11:17
ST的串口没有硬件缓存区,你得用软件实现,譬如申请一个100字节的缓存区,在中断中把收到的数据放到缓存 ...

好的明白!
这样的话 关于软件缓存的动作我就有一个 疑问;

首选由于 ST 没有硬件缓存区,那么意味着 接收到一个完整的字节 后  中断触发。

中断触发后,串口是否还在工作呢?
比如发送端发过来 一个20字节的字符, 收到第一个字符之后 开始进入中断,

后面19个字符 是等中断出来, 然后下一个字节接收 触发中断 ,再进入中断接收?
还是, 在第一个字节进入中断后, 串口继续工作,后面的字符继续  “收” 进来?

如果是第二种情况 那么, 如果 发送端是不定时的话, 那软件上做缓存  会不会 出现 “断节” 的现象

比如 缓存区15个字节, 第一次 来了10个字符, 接收过程中又来了10个~~~ 只收后一个包的5个字符
回答时间:2018-3-7 11:42:29
中断产生后需要自己去把数据收到缓冲区,如果不收,这样就容易导致溢出。所有处理都是自己写代码解决。如果用DMA就不需要管理,接收到指定数量后会产生DMA中断。

评分

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

查看全部评分

su-409464 回答时间:2018-3-7 11:58:49
安 发表于 2018-3-7 11:42
中断产生后需要自己去把数据收到缓冲区,如果不收,这样就容易导致溢出。所有处理都是自己写代码解决。如果 ...

谢谢你!

DMA  的工作机制 是  接收到指定数量后会产生DMA中断????

那这样的不合适, 比如对应接收不定长 字符串的时候,    这个指定数量 就麻烦了。

可能接收了 其中的一般,  也可能接收了  未达到指定数量~~~~

wudianjun2001 回答时间:2018-3-7 12:55:17
中断标志好像没清除吧
还有一般不要在中断里发送数据,收到后到缓冲区,然后在主循环里发

评分

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

查看全部评分

好心情123 回答时间:2018-3-7 12:57:04
是接收中断溢出问题,我也碰到了同样的问题,找了很久才发现,默认中断溢出是打开的,可以初始化的时候关闭掉

评分

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

查看全部评分

anobodykey 回答时间:2018-3-7 13:59:15
su-409464 发表于 2018-3-7 11:28
好的明白!
这样的话 关于软件缓存的动作我就有一个 疑问;

你要相信MCU的速度是很快的M级别的,而串口的速度是很慢的一般处于K级别,你处理完第一个字节时,第二个字节都有可能还没来到总线上呢,软件做的好的话一般不会出现你说的断节现象
su-409464 回答时间:2018-3-7 14:54:06
好心情123 发表于 2018-3-7 12:57
是接收中断溢出问题,我也碰到了同样的问题,找了很久才发现,默认中断溢出是打开的,可以初始化的时候关闭 ...

我没有修改初始化 将中断溢出 关闭,  我参考这个  ,在中断接收函数中 清中断标志位 和中断接收溢出位
http://bbs.21ic.com/icview-160999-1-1.html

所属标签

相似问题

官网相关资源

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