STMCU小助手
发布时间:2021-7-26 11:12
|
因为arduino控制丝杆和控制拨片的板子都只有1个串口,他们彼此之间需要互相通信,而且还需要和树莓派通信,因此串口数目就不够了,于是我就用STM32F103芯片做了一个串口数据管理器,STM32F103芯片有3个串口,分别是USART1~3,因此我就分了UART1串口和树莓派通信,UART2和驱动拨片的板子通信,UART3和驱动丝杆的板子通信。0 `5 o, A9 W+ K' d' Y ; {* I8 f/ e4 e5 c& q) y 任务分析
串口数据流分配大概如上图所示,黑色的箭头即表示了串口数据流,这都还是好理解的,唯一有些难理解的就是蓝色箭头了。 0 B) G; `! y; M$ H/ A4 A+ A 蓝色箭头指的是舵机驱动板和丝杆驱动板借由STM32F103芯片实现间接的互相通信。 j) C1 o, s% i) I6 T 3 r) d# {+ z& v/ r8 P/ c$ q& m/ S STM32F103在其中扮演着相当重要的命令,由其解析树莓派下发的命令,并且将任务准确分配到舵机驱动板和丝杆驱动板,并且其还解析丝杆驱动板和舵机驱动板上发的命令,保证2块驱动板之间也能实现通信。这样才能最终保证整个串口数据流的稳定。 5 K/ M) J- r( m1 f/ W6 x+ J 4 Y% v9 E5 w5 d7 [- p6 } * H$ l" {& ^+ |' h% A% y STM32CubeMX配置工程 * F* n8 Z' D& b' F) x 首先在STM32CubeMX里面选择我们的芯片(STM32F103C8Tx)
首先我们来配置SYS为Serial Wire,并把基准时钟配置为SysTick( F1 u" @( d: H, r* c2 l
接下来配置RCC
完成了芯片基本配置之后就开始配置串口了,因为舵机驱动板和丝杆驱动板的串口波特率都是9600,因此USART2和USART3的波特率都配置成了9600,那么为了保证一致,我也就将STM32F103与树莓派通信的波特率也配置成了9600,具体配置如下。
0 q* O: [& o2 W
完成了串口配置之后可以看到芯片的引脚使用图如下所示,/ _ x& y! j$ s+ d6 L . i0 x6 P0 B7 }9 Y, @7 N
那么至此我们以及完成了芯片的配置,接下来就要生成工程了,我用的开发环境是Keil5,因此我选择的IDE是MDK-ARM V5。7 C |' m) v G/ t, o" {1 y
还有下图2个选项默认是不会勾选的,但是为了减小生成的Keil5工程文件的大小,我建议都勾选上,第一个是只包含必要的库,第二个是将外设文件都按照.c和.h进行分类。
完成工程配置之后,点下图这个文件就可以生成工程啦。' ]; n! u7 f8 ^& ~1 g0 t7 o0 P: j
然后就可以编译生成的工程文件了,如果出现了下图错误,请参照文章[url=*https://www.guyuehome.com/29307]《CubeMX配置STM32F103C8T6芯片调试光电传感器》[/url]
" R' J" z" \- ^+ M) ^8 U / r- F, O( o; I; D S ; J6 m& \- R" g5 g( L" |2 c! u) { , F ? {( d$ b e( D9 l1 |& d4 X 逻辑撰写 首先我们将各个串口重命名一下,减少程序的耦合性3 z+ `% m! B! J. X
|
【STM32H5 评测】ADC 电压表
【STM32H5 评测】基础硬件加密与随机数性能 - STM32H5E5实测硬件AES加解密、HASH运算、TRNG真随机数输出速率与稳定性
【STM32H5 评测】NUCLEO-H5E5ZJ 使用 TrustZone 安全分区系统实践测试
【STM32H5 评测】CPU核心性能 - STM32H5E5跑 RTOS,观察任务切换速度、中断响应快慢
【STM32H5 评测】介绍、环境搭建、工程测试
#双节活动 1.在CubeMX中引用touchGFX出现的问题与解决
如何将STM32CubeMX生成的CMake工程导入STM32CubeIDE
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
STM32CubeCLT 1.22.0新版本发布
【下载问题解决】关于ST官网下载软件问题解决
微信公众号
手机版