一、开发板平台简介:! Q+ I, q/ k" i: C2 \5 n 1、开发板资源简介$ t' P& F/ x S# N (1)开发板主芯片型号:STM32L431RCT6% i# r; @7 X0 k' p (2)开发板主芯片封装:LQFP-64_10x10x05P (3)开发板主芯片内核:ARM® Cortex®-M4 (4)开发板主芯片主频:80MHz0 R; |7 c0 t1 P6 P (5)开发板主芯片Flash大小:256KB$ t9 m$ h7 X0 ]; g, Q& E (6)开发板主芯片RAM大小:64KB$ r* M; ?" ~- R7 E9 ?, _ . X+ C9 y: k) h h7 u, D! q- ? 2、LED灯资源- S, D# f; D4 \% N! J (1) STM32L431RCT6开发板共5个LED灯资源,其中一个红色LED为系统指示灯,指示开发板供电系统是否正常,如供电系统正常,红色LED为上电常亮状态,硬件原理图如下图所示:& p) z% _* U4 k6 A/ n8 L " b6 t6 F. \9 j- P4 T0 |& t9 K (2)其他四个LED灯为黄绿色可控LED,高电平点亮、低电平熄灭,计划用LED常亮验证看门狗的作用,硬件原理图如下图所示:4 V. X e6 `/ @4 b @8 E, C& Q6 M# c 3、串口printf打印工作原理( l9 F$ D8 O* w4 W I# i( P 串口全称为串行通讯接口,即数据在通信线上一次传输一位,按先后一定顺序传输。我们通常所说的单片机串口准确来说应该是串行异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART),使用TTL电平,串口需要RXD、TXD、GND三根线进行通信。. w6 F* V2 n9 j- Q p$ C" z9 o 6 V) B) d2 ~$ o% s, p* l( A (1)我们选用的STM32L431RCT6开发板串口1已通过USB转TLL串口芯片CH340G引出,使用时,只需要用公对公USB线连接电脑即可(注意也得需要安装CH340G驱动),后期验证试验也可使用该串口作为debug串口。% ]9 h) L8 d6 b" y6 R5 E& a : H! U# k* y6 P (2)开发板上的其他串口已通过排针引出,为TTL电平,通信的时候需要注意选择对应的电平模块,如USB转TTL串口模块等。" P! N; M. u0 ~ TTL转CH340串口,硬件原理图如下所示: 1 B6 |! f& z- Z4 v 二、串口Transmit打印实验过程 G( `; M. y% | 1、新建STM32CubeMX基础工程 (1)打开STM32CubeMX,点击“File”-->"New Project"+ G1 U8 Z2 h, p/ y6 a 3 D; F$ E, P" z) F (2)等待打开主芯片选项界面(大约1分钟时间)。 8 Y3 M* C& A) @2 u( G (3)昨天搜索框中输入(或选择)所需的主芯片型号(因为我们用的是STM32L431RCT6开发板,所以此处选择STM32L431RC),然后在右下角选择STM32L431RCTx(因为开发板主芯片是STM32L431RCT6),左键双击即可打开新建的项目。 ( h# u$ E4 n' j) c* @( [ (4)选择时钟源。 因为开发板上有8M外部时钟,硬件原理图如下所示,所以此处选择使用外部高速时钟(HSE)。 ! z& K% G/ y0 u( r) c( L& r N& x& i 因为我们没有用到外部低速时钟(LSE),此处不做处理,如下图所示。3 d* Z9 q8 h8 |1 P# q/ W. p 9 V. K, W# W' ?" [. {- ? 2、配置GPIO控制LED2 j( O6 n6 Z( \0 I o (1)查开发板原理图得,LED1、LED2、LED3、LED4的控制引脚分别为:" v" I1 t2 c" Z+ e3 r LED1——PC0 LED2——PC1- p" O [1 R& |; | C& e1 v LED3——PC2& u: o" `' A9 o8 c LED4——PC3- J1 R* k3 f( i* N- n (2)配置LED的控制引脚为输出,输出频率、输出方式默认即可。( C) [$ Q6 l L$ j * P; j) B- {+ i8 l/ R 鼠标左键点击PC0,选择“GPIO_Output”,表示设置该引脚为输出模式。1 o- F' ~) J7 J2 g* S 鼠标左键点击PC1,选择“GPIO_Output”,表示设置该引脚为输出模式。2 F6 m& G0 w7 h7 M7 M v+ X1 [* } 鼠标左键点击PC2,选择“GPIO_Output”,表示设置该引脚为输出模式。 鼠标左键点击PC3,选择“GPIO_Output”,表示设置该引脚为输出模式。 (3)也根据自己的需求配置GPIO的参数,如输出方式、输出频率、上拉下拉等。因为GPIO控制LED的要求比较低,此处采用默认参数即可,不用修改。 3、配置PA9、PA10为串口 查原理图得知,串口1使用STM32L431RCT6引脚为PA9-USART1_TX,PA10-USART1_RX,引脚设置如下: % |# d V+ f; Q6 O% } (1)序号1用来设置串口收发引脚的选择。+ x' z* ^) P/ B$ [# b" r (2)序号2-3-4-5-6设置串口参数,如波特率115200、8位、NONE无奇偶校验等。; y8 ~9 R2 Y8 E( Q2 o* F' {7 r 7 b$ H. [- i2 a0 o4 g; [ 3、配置项目工程参数. [, r3 q' D. Q# W, | (1)配置时钟树,用于系统内部时钟,以及各个外设时钟等。此处选择外部8M晶振作为主时钟频率,内部最大倍频80MHz。) \# l& M v( q+ M - G6 V& [! E( h% O7 G; z. A; | , k7 l, h% P5 ^3 z2 r: [5 k$ j (2)完成配置工程。 备注:需要注意代码生成过程中的继承关系,如图所示:需要保留开发者自己编写的代码时,请根据配置设置,不然生成代码后会删除自己编写的代码(从这个方面也可以看出开发者备份自己的代码是多么的重要。) 9 f( v: N3 c" M0 E 4 i! s8 _: u2 k) X: i (3)生成代码。 备注:使用Generate CODE生成工程代码前,请确保文件路径无中文,否则会生成项目失败。4 g& K9 k! M1 B& z7 w' S% _( p 2 m" H& z0 ?" ~% ^" ` (4)工程代码生成成功。 ) o) P& G; Q9 Q! b3 ` 三、在KEIL 5中编写代码 1、使用KEIL 5(MDK)打开项目工程文件 源码使用说明:使用前必须把项目工程复制到无中文路径的文件夹下使用。 (1)找到刚才新建工程的存储路径,安装项目名称,打开项目工程.uvprojx。 ; B6 P; R$ D/ R2 ]2 q6 H' J# @% |4 u ! C5 C& N! \/ C8 V! \ 2、添加串口Transmit验证程序' c$ K" H" A: l" L (1)main.c文件中,初始化LED1、LED2、LED3、LED4默认为点亮,并在while循环中添加控制程序,如下所示:实现每隔500ms后LED1、LED2、LED3、LED4点亮和熄灭之间反转切换,并且串口每隔500ms打印一次。 s. K# e8 q9 \; g' ~; M 备注:自己添加的代码需要在 /* USER CODE BEGIN 3 */和 /* USER CODE END 3 */之间添加,否则STM32CubeMX更新代码时,会造成自己添加的代码丢失。 (2)main 函数代码如下所示:
3、设置编程仿真下载模式 (1)选择Options for target ...>>Debug>>J-Link/J-JTRACE Cortex,点击Settings>>选择Port(SW),可以看到搜索成功SW Device,表示芯片可用,可以下载。 2 B+ c) u/ v( O/ V+ J3 h (2)点击编译,完成后提示“0 error(s),0 warning(s)”。0 }) G4 p0 f/ [! s) q( g ' _" x: K9 A+ P. U (3)点击Download(或者快捷键F8),即可下载程序。% z" F% L1 U/ g0 x& h - y1 d3 L3 O1 o (4) 如果下载程序后,没有看到LED1、LED2、LED3、LED4闪烁,可以按下述方式设置一下(Reset and run表示下载后自动复位和重启运行)。或者重新彻底断电再次上电(或按开发板的Reset按键复位MCU即可)。 - y; V6 y+ ]" j! ~ 4、串口Transmit打印实验效果展示) L3 O7 V( U1 \2 Z 程序烧录到开发板后,即可看到LED1、LED2、LED3、LED4初始化后每隔500ms闪烁一次,并且打开串口助手后(串口参数:波特率115200、N、8、1),可以看到Transmit每隔500ms打印一次log数据。 j" b/ q7 P4 [% A9 `. _ - O! J. ?. O; a5 @$ ? ———————————————— 版权声明:智能小屋ZYXC 0 w: [0 r$ _/ s) n9 w- g1 A |
基于STM32L476+64M QSPI接口PSRAM(IPS6404L)开源分享(含源码)
基于STM32 Azure USBx 开发的经验分享
NUCLEO-U545RE-Q评测】4. 串口实用收发测试
NUCLEO-U545RE-Q板卡评测 (第二篇外传)UART的单线半双工的上拉电阻问题
基于STM32串口如何发送字符串经验分享
基于STM32模拟UART串口通信
基于STM32L4R9 的QuadSPI Flash 通讯速率不理想经验分享
基于STM32的串口通信经验分享
基于STM32串口通信经验分享
STM32芯片ISP串口程序一键下载—FlyMcu