OpenEdv-开源电子网

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

请问mini板能够同时接多个模块吗?

[复制链接]

4

主题

11

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-4-22
在线时间
13 小时
发表于 2019-5-8 19:40:48 | 显示全部楼层 |阅读模式
2金钱
如题,例如我同时拥有了AS608指纹识别模块和sim800c通信模块,我能否通过改串口和主函数代码的方式来使两个模块同时发挥作用?这其中又有什么需要注意的细节呢?求大神解答,谢谢~


最佳答案

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

完全可以,AS608和sim800c都是串口通信的。mini板是 103RCT6 MPU 有5个串口可用。 用时首先注意串口对应哪几个IO口(如:USART1 RX-PA10 TX-PA9),程序用原子的例子就可以,不过建议改下(接收时去了那个判断0x0d,0x0a结尾的条件),调通了一个串口其他的都 差不多。再有就是与外设通信的通信协议一定得搞明白。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

79

帖子

0

精华

高级会员

Rank: 4

积分
727
金钱
727
注册时间
2016-5-27
在线时间
91 小时
发表于 2019-5-8 19:40:49 | 显示全部楼层
完全可以,AS608和sim800c都是串口通信的。mini板是 103RCT6 MPU 有5个串口可用。
用时首先注意串口对应哪几个IO口(如:USART1  RX-PA10 TX-PA9),程序用原子的例子就可以,不过建议改下(接收时去了那个判断0x0d,0x0a结尾的条件),调通了一个串口其他的都
差不多。再有就是与外设通信的通信协议一定得搞明白。
回复

使用道具 举报

3

主题

21

帖子

0

精华

高级会员

Rank: 4

积分
537
金钱
537
注册时间
2014-10-6
在线时间
232 小时
发表于 2019-5-8 21:04:00 | 显示全部楼层
可以  
回复

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-4-22
在线时间
13 小时
 楼主| 发表于 2019-5-9 16:35:58 | 显示全部楼层
www88988 发表于 2019-5-9 11:23
完全可以,AS608和sim800c都是串口通信的。mini板是 103RCT6 MPU 有5个串口可用。
用时首先注意串口对应哪 ...

感谢解答。现在我的情况是,对代码进行一定修改后同时接上了两个模块,AS608模块无法与STM32取得通信(由于两个原程序都是用的串口2,我就把as608模块改为了串口5通信(uart),同时在代码里二者都用了定时器4,所以我把AS608的定时器改为了定时器5,两个模块单独运作时是都可以与stm32通信的。)请问这一部分能提供一下解决思路吗?谢谢!
回复

使用道具 举报

0

主题

79

帖子

0

精华

高级会员

Rank: 4

积分
727
金钱
727
注册时间
2016-5-27
在线时间
91 小时
发表于 2019-5-9 18:06:03 | 显示全部楼层
布尔 发表于 2019-5-9 16:35
感谢解答。现在我的情况是,对代码进行一定修改后同时接上了两个模块,AS608模块无法与STM32取得通信(由 ...

串口通信怎么用到定时器呢?既然2个模块单独都能通信,那么就没问题了啊,一起通信和单独通信没什么区别啊。
回复

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-4-22
在线时间
13 小时
 楼主| 发表于 2019-5-9 18:33:32 | 显示全部楼层
www88988 发表于 2019-5-9 18:06
串口通信怎么用到定时器呢?既然2个模块单独都能通信,那么就没问题了啊,一起通信和单独通信没什么区别 ...

我之所以改定时器是因为两个模块的引用的代码里(usart2.c与uart5.c)都有对TIM4_IRQHandler的定义,导致在编译时产生了冲突,所以我就把AS608的定时器从4改为了5.
回复

使用道具 举报

0

主题

79

帖子

0

精华

高级会员

Rank: 4

积分
727
金钱
727
注册时间
2016-5-27
在线时间
91 小时
发表于 2019-5-10 08:44:42 | 显示全部楼层
布尔 发表于 2019-5-9 18:33
我之所以改定时器是因为两个模块的引用的代码里(usart2.c与uart5.c)都有对TIM4_IRQHandler的定义,导致 ...

这样写代码不好,usart.h usart.c只写与串口有关的代码,把对定时器的代码写到timer.h timer.c,这样便于阅读和代码复用。
再有就是对定时器的功能的调用(我想你可能是串口接收命令改变定时器的周期),放到与main.c中或其他c文件中,这样以后要用定时器或串口直接把相关.h和.文件拷过去用就行。
回复

使用道具 举报

4

主题

11

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-4-22
在线时间
13 小时
 楼主| 发表于 2019-5-10 18:13:41 | 显示全部楼层
www88988 发表于 2019-5-10 08:44
这样写代码不好,usart.h usart.c只写与串口有关的代码,把对定时器的代码写到timer.h timer.c,这样便于 ...

好的,感谢建议~
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2019-5-8
在线时间
7 小时
发表于 2019-9-26 10:15:45 | 显示全部楼层
可以的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 14:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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