前面几篇把灯学习了一番,今天来学点其它的外设-USART串口;此篇应用板载的ST-LINK V3的MCO引脚提供给主控MCU的旁路时钟源及USART3来进行串口数据的收发学习; 从原理图上可以看出USART3的RX和TX默认在引脚PD8/PD9上面;旁路时钟源为ST-Link的MCO提供的8M时钟源., q$ l3 V$ x2 J% _7 f Q * z0 _' E: v4 n9 k, ~5 V 打开cubeMX软件,进行时钟源和外设USART的设置,具体见下图:' B1 k6 W' P1 ?9 U8 N- ^ ; G( c7 d/ H+ K- E8 Q ; e' U: q$ I% T: w, B: h 1、先设置引脚PD9和PD8为USART3_RX和USART3_TX 2、点击左侧的“System Core”,再点击左侧“RCC”' X& r, o+ m8 L 3、设置“High Speed Clock (HSE)”为“BYPASS Clock Source"& |) m/ p$ r! F! i' Z$ H 点击”Clock Configuration“,照上图设置时钟源;* k6 f/ X# p- N3 ^2 g 接下来设置USART3,激活PD8\PD9的串口功能; 6 `! D' x/ {' O8 Q5 F Y! N& P 1、点击”Pinout & Configuration“,再点击”Connectivity“; T& j1 x& o. E, A8 _' A8 i0 P 2、再选中“USART3"2 }1 |/ D; g: l3 z% f: K, r 3、设置”Mode“为”Asynchronous“使能USART3为异步通信, k1 E6 j) Z; m$ k/ A 4、串口的收发波特率之类的参数保持默认即可 # m3 t& u# z* s( L( i" S# R 以上设置完成后,点击”Project Manager“设置工程代码生成的相关参数并保存工程为”USRAT3": 上面的保作完成后,即可点击“GENERATE CODE"生成工程代码,并选择打开工程; 在MDK中打开工程后,双击打开”main.c"文件,添加自动发送16进制数据的代码;& [$ b0 E O7 L 再设置板载ST-Link的下载参数如下: & ~" R; W* p- ]3 j2 J, \- U : g9 Y" }+ k6 d$ W 编译成功并下载到板卡,打开串口调试助手,选择COM串口为ST-LINK的虚拟串口号,并打开串口,即可看到运行的效果: % y: P. H8 l0 l. }. H4 F A 串口自动发送从00-2E的16进制数据并循环,说明USART3设置成功;: o$ `- @: ]3 o8 A: G' w8 y 接下来在上面的基础上修改代码为手工发送字符的代码并运行; + G8 d" T; k# B) I5 P2 W) C$ W 编译下载,打开串口调试助手,并打开ST-Link的虚拟串口,并在发送窗口输入"test",并发送,运行效果如下: v4 ], `' O/ L9 k* Q7 P 代码附件: . D& F: H$ S `# j4 K2 u7 b7 ]- j1 W |
Stm32H7XX GCC下分散加载实现
【银杏科技ARM+FPGA双核心应用】STM32H7系列10——ADC
DIY-STM32H750核心板
[nucleo-H7A3ZI-Q]1-点亮一个皮皮灯
DIY-STM32H743核心板
【银杏科技ARM+FPGA双核心应用】STM32H7系列57——MDK_FLM
1月10日有奖直播 | 基于STM32 的CODESYS智能自动化解决方案
STM32的CAN FD位定时设置注意事项
用 STM32CUBEMX 生成 STM32H735 LWIP PING 不成功
基于STM32H7 EXTI + SPI +DMA 双缓冲应用经验分享