你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
su-409464 发表于 2018-3-7 10:53 好像真的是 溢出了~~~ 几个字符可以,但是一长串 字符就 挂了!!!!
安 发表于 2018-3-7 11:10 普通的串口接收就一个字节
anobodykey 发表于 2018-3-7 11:17 ST的串口没有硬件缓存区,你得用软件实现,譬如申请一个100字节的缓存区,在中断中把收到的数据放到缓存 ...
查看全部评分
安 发表于 2018-3-7 11:42 中断产生后需要自己去把数据收到缓冲区,如果不收,这样就容易导致溢出。所有处理都是自己写代码解决。如果 ...
su-409464 发表于 2018-3-7 11:28 好的明白! 这样的话 关于软件缓存的动作我就有一个 疑问;
好心情123 发表于 2018-3-7 12:57 是接收中断溢出问题,我也碰到了同样的问题,找了很久才发现,默认中断溢出是打开的,可以初始化的时候关闭 ...
STM32隐藏
5.18活动板子会不会是STM32L4呢
STM32 CUBE软件中找不到STM32L4系列单片机
Your UAT Feedback is needed within today.
应用
AAA
测试测试12345
群
tiwen
BBBB
ST的串口没有硬件缓存区,你得用软件实现,譬如申请一个100字节的缓存区,在中断中把收到的数据放到缓存中,在主函数中进行回显操作,论坛里有很多这样的例程的
好的谢谢!
好的明白!
这样的话 关于软件缓存的动作我就有一个 疑问;
首选由于 ST 没有硬件缓存区,那么意味着 接收到一个完整的字节 后 中断触发。
中断触发后,串口是否还在工作呢?
比如发送端发过来 一个20字节的字符, 收到第一个字符之后 开始进入中断,
后面19个字符 是等中断出来, 然后下一个字节接收 触发中断 ,再进入中断接收?
还是, 在第一个字节进入中断后, 串口继续工作,后面的字符继续 “收” 进来?
如果是第二种情况 那么, 如果 发送端是不定时的话, 那软件上做缓存 会不会 出现 “断节” 的现象
比如 缓存区15个字节, 第一次 来了10个字符, 接收过程中又来了10个~~~ 只收后一个包的5个字符
评分
查看全部评分
谢谢你!
DMA 的工作机制 是 接收到指定数量后会产生DMA中断????
那这样的不合适, 比如对应接收不定长 字符串的时候, 这个指定数量 就麻烦了。
可能接收了 其中的一般, 也可能接收了 未达到指定数量~~~~
还有一般不要在中断里发送数据,收到后到缓冲区,然后在主循环里发
评分
查看全部评分
评分
查看全部评分
你要相信MCU的速度是很快的M级别的,而串口的速度是很慢的一般处于K级别,你处理完第一个字节时,第二个字节都有可能还没来到总线上呢,软件做的好的话一般不会出现你说的断节现象
我没有修改初始化 将中断溢出 关闭, 我参考这个 ,在中断接收函数中 清中断标志位 和中断接收溢出位
http://bbs.21ic.com/icview-160999-1-1.html