3484|14

3243

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

STM32串口中断的问题 [复制链接]

 
STM32的串口中断可否这样,就是设置接收了多少个字符触发接收中断。
比如设置8个字节触发中断,就接收了8个字节才产生一次中断。
请高手指教。谢谢!
此帖出自stm32/stm8论坛

最新回复

是啊,自己做个环形缓冲。想怎么整都可以。  详情 回复 发表于 2017-10-24 09:21
点赞 关注
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 

回复
举报

875

帖子

1

TA的资源

纯净的硅(高级)

沙发
 
为什么要这么做?在我理解的是,接收本来就是一个中断,应为它打破了CPU原先要进行的任务,
此帖出自stm32/stm8论坛

点评

我只是看到有的单片机有这个功能  详情 回复 发表于 2017-10-18 15:40
 
 

回复

3243

帖子

0

TA的资源

纯净的硅(高级)

板凳
 
曹伟1993 发表于 2017-10-18 15:23
为什么要这么做?在我理解的是,接收本来就是一个中断,应为它打破了CPU原先要进行的任务,

我只是看到有的单片机有这个功能
此帖出自stm32/stm8论坛

点评

应该不是这样的吧,你接受之后可以不去处理,但是你不能不让他接受呀,我觉得你说的应该是到一定的数据才去处理这个中断吧  详情 回复 发表于 2017-10-18 15:43
 
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 

回复

875

帖子

1

TA的资源

纯净的硅(高级)

4
 
chenbingjy 发表于 2017-10-18 15:40
我只是看到有的单片机有这个功能

应该不是这样的吧,你接受之后可以不去处理,但是你不能不让他接受呀,我觉得你说的应该是到一定的数据才去处理这个中断吧
此帖出自stm32/stm8论坛

点评

没错。我看的周航慈的《基于嵌入式实时操作系统的程序设计技术》,第11章,双向数据通信。 他的书是用的NXP的片子,LPC1766,有这个功能。它也不是说不接收,而是不到一定的字节数 不触发中断。  详情 回复 发表于 2017-10-18 15:53
 
 
 

回复

3243

帖子

0

TA的资源

纯净的硅(高级)

5
 
曹伟1993 发表于 2017-10-18 15:43
应该不是这样的吧,你接受之后可以不去处理,但是你不能不让他接受呀,我觉得你说的应该是到一定的数据才 ...

没错。我看的周航慈的《基于嵌入式实时操作系统的程序设计技术》,第11章,双向数据通信。
他的书是用的NXP的片子,LPC1766,有这个功能。它也不是说不接收,而是不到一定的字节数
不触发中断。
此帖出自stm32/stm8论坛

点评

有串口FIFO的可以用FIFO,没有的可以用DMA 其实即使每个字节都触发中断又能产生多大的影响呢? 比如每收到一个字节就触发中断,在中断里保存数据到接收数组,然后计数器加1,判断计数器是否达到你的预设值,达到处  详情 回复 发表于 2017-10-19 07:21
 
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 
 

回复

4008

帖子

0

TA的资源

版主

6
 
是有这样的东西,但是在串口通信里不是特别实用,因为一旦串口受干扰就会产生断章取义的现象。要解决干扰问题还是要一个一个处理。
仅凭字节数分包不是很可靠。
此帖出自stm32/stm8论坛
 
 
 

回复

4008

帖子

0

TA的资源

版主

7
 
你可以用串口的dma实现,用dma传输完成中断代替
此帖出自stm32/stm8论坛

点评

嗯,有道理  详情 回复 发表于 2017-10-18 16:08
 
 
 

回复

3243

帖子

0

TA的资源

纯净的硅(高级)

8
 
huo_hu 发表于 2017-10-18 16:06
你可以用串口的dma实现,用dma传输完成中断代替

嗯,有道理
此帖出自stm32/stm8论坛
 
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 
 

回复

2700

帖子

0

TA的资源

五彩晶圆(初级)

9
 
用dma把数据存到一个相对比较大的数组,然后程序定时处理数组里面的数据。跟dma接收多少个字节再中断关系不大。但是要计算通信的数据量,让主程序能及时处理处理数组的数据,免得数组里面未处理的数据溢出丢包了
此帖出自stm32/stm8论坛
 
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 
 

回复

9798

帖子

24

TA的资源

版主

10
 
chenbingjy 发表于 2017-10-18 15:53
没错。我看的周航慈的《基于嵌入式实时操作系统的程序设计技术》,第11章,双向数据通信。
他的书是用的 ...

有串口FIFO的可以用FIFO,没有的可以用DMA
其实即使每个字节都触发中断又能产生多大的影响呢?
比如每收到一个字节就触发中断,在中断里保存数据到接收数组,然后计数器加1,判断计数器是否达到你的预设值,达到处理,没达到退出
此帖出自stm32/stm8论坛

点评

是的,一样的。  详情 回复 发表于 2017-10-20 16:44
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

11
 
可以试试串口的空闲中断,配合DMA可以完成DMA接收不定长的数据
此帖出自stm32/stm8论坛
 
 
 

回复

3243

帖子

0

TA的资源

纯净的硅(高级)

12
 
littleshrimp 发表于 2017-10-19 07:21
有串口FIFO的可以用FIFO,没有的可以用DMA
其实即使每个字节都触发中断又能产生多大的影响呢?
比如每 ...

是的,一样的。
此帖出自stm32/stm8论坛

点评

是啊,自己做个环形缓冲。想怎么整都可以。  详情 回复 发表于 2017-10-24 09:21
 
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 
 

回复

672

帖子

0

TA的资源

版主

13
 
用dma试试看
此帖出自stm32/stm8论坛
 
 
 

回复

224

帖子

0

TA的资源

一粒金砂(高级)

14
 
直接用dma吧,不会有问题
此帖出自stm32/stm8论坛
 
个人签名爱好拍砖打假
 
 

回复

6107

帖子

4

TA的资源

版主

15
 

是啊,自己做个环形缓冲。想怎么整都可以。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表