OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4326|回复: 4

关于同时使用多串口的一些问题

[复制链接]

10

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2016-3-5
在线时间
33 小时
发表于 2016-3-7 22:41:31 | 显示全部楼层 |阅读模式
5金钱
问题1:在串口初始化的时候使能了串口1,在main()函数中使用到串口2要使用函数USART_Cmd(UART1, DISABLE);把串口1失能么?在串口2转换到串口3呢?也是需要把串口2失能么?
问题2:在串口2中断函数中把串口2失能,那么在串口中剩下的函数还会执行么?

还有串口中断有些不解,比如串口2将要收到一段字符串,是否每接收到一个字符就会执行一次串口2中断函数? 串口2中断模式:USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);

最佳答案

查看完整内容[请看2#楼]

问题1,多个串口可以同时使用的,你这句USART_Cmd(UART1, DISABLE)应该是在while前面的吧?这句可以省略的。 问题2,如果在中断函数里面失能了串口,会继续执行该函数的,直到函数结束。 你最后的问题,我个人觉得,应该是,只是速度太快,你看不出罢了。 以上是本人愚见,有错误的请指出。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

69

主题

495

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2197
金钱
2197
注册时间
2015-11-14
在线时间
542 小时
发表于 2016-3-7 22:41:32 | 显示全部楼层
问题1,多个串口可以同时使用的,你这句USART_Cmd(UART1, DISABLE)应该是在while前面的吧?这句可以省略的。
问题2,如果在中断函数里面失能了串口,会继续执行该函数的,直到函数结束。
你最后的问题,我个人觉得,应该是,只是速度太快,你看不出罢了。

以上是本人愚见,有错误的请指出。
回复

使用道具 举报

10

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2016-3-5
在线时间
33 小时
 楼主| 发表于 2016-3-7 23:25:36 | 显示全部楼层
单模先声 发表于 2016-3-7 23:20
问题1,多个串口可以同时使用的,你这句USART_Cmd(UART1, DISABLE)应该是在while前面的吧?这句可以省略的 ...

你的意思是使能了串口2,可以不用使串口2失能而直接可以使能串口3来使用串口3?
回复

使用道具 举报

69

主题

495

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2197
金钱
2197
注册时间
2015-11-14
在线时间
542 小时
发表于 2016-3-7 23:41:03 | 显示全部楼层
kia350 发表于 2016-3-7 23:25
你的意思是使能了串口2,可以不用使串口2失能而直接可以使能串口3来使用串口3?

可以啊
回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3347
金钱
3347
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-3-7 23:55:07 | 显示全部楼层
问题2好理解, 因为在你失能之前中断已发生, 并且已进入中断的情况, 你失不失能中断函数都要运行完中断函数的代码, 除非你人为作用, 只是你失能后,下次就不会才生中断了.我是这样理解的.

问题 1 没搞时白你要问什么
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 13:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表