STMCU小助手
发布时间:2023-1-14 18:52
|
一、开发板平台简介:9 \, P+ J b9 J% _2 k 1、开发板资源简介5 v k+ G7 M1 P5 w ?: i (1)开发板主芯片型号:STM32L431RCT6 (2)开发板主芯片封装:LQFP-64_10x10x05P1 m0 G/ p$ l- I1 u4 ~0 Z (3)开发板主芯片内核:ARM® Cortex®-M4$ V" r7 _- z0 |5 N" m1 h (4)开发板主芯片主频:80MHz6 _* j/ W( f) X3 L (5)开发板主芯片Flash大小:256KB (6)开发板主芯片RAM大小:64KB
% i1 e% h1 ? @+ Z
* P9 I- d3 Q# G+ N 2、LED灯资源) T5 \' ]" u1 [+ d* P3 v" l (1) STM32L431RCT6开发板共5个LED灯资源,其中一个红色LED为系统指示灯,指示开发板供电系统是否正常,如供电系统正常,红色LED为上电常亮状态,硬件原理图如下图所示:4 a/ f1 z& T1 T, z' o' a: Z 6 P8 _! w# K/ C! c
$ x# D- {8 g5 ~ ) N/ V9 z$ b: ^$ X2 O* ~ (2)其他四个LED灯为黄绿色可控LED,高电平点亮、低电平熄灭,跑马灯实验则基于这四个LED实测验证,硬件原理图如下图所示:; ?2 N; ^3 P! [$ O# [9 {# I6 u9 S 1 S6 `2 C2 E1 C5 v
+ u9 Z2 g6 H; `- e t5 W4 ^4 p 二、流水灯实验过程 1、新建STM32CubeMX基础工程 (1)打开STM32CubeMX,点击“File”-->"New Project"5 S e$ h: k/ ]- t6 x5 ~( \ 7 J4 e8 W$ s. f" f# x' K6 \& f# {& X 5 p; j; O, a% @% {$ |
% s S* f& i$ m (2)等待打开主芯片选项界面(大约1分钟时间)。 ' B1 I; u# o1 ?4 f& X# _ . _4 ?9 o, M k4 P, |
9 _0 v" }& l- T7 h! j (3)昨天搜索框中输入(或选择)所需的主芯片型号(因为我们用的是STM32L431RCT6开发板,所以此处选择STM32L431RC),然后在右下角选择STM32L431RCTx(因为开发板主芯片是STM32L431RCT6),左键双击即可打开新建的项目。 ( J( \, n; c: I7 Y
(4)选择时钟源。 (1)因为开发板上有8M外部时钟,硬件原理图如下所示,所以此处选择使用外部高速时钟(HSE)。- r, U* V' c, _! X! v. P ] / p5 D* q7 U( Q- F
0 b9 x0 o( p% f$ |7 [( ` (2)因为我们没有用到外部低速时钟(LSE),此处不做处理,如下图所示。 . H4 Y9 B L2 Q7 ^: I6 f * a/ `9 F& `/ g! O8 S0 M
3 @8 C% o% r+ o l; ~1 O' g 2、配置GPIO控制LED" K0 Z4 v, F4 W( S; N (1)查开发板原理图得,LED1、LED2、LED3、LED4的控制引脚分别为:* o! M2 N( W1 ]3 C+ a * v) Y* l; k$ X3 ^2 I/ ?. `/ X 6 A6 _: l7 ~. W, Q- |% j# W+ S LED1——PC0 d3 i, R0 N1 j) e# O7 ]# \ LED2——PC1 LED3——PC2; X0 ?) U( j4 \+ K; ?) x% z% e LED4——PC3 ) z- [5 h. O$ H& L (2)配置LED的控制引脚为输出,输出频率、输出方式默认即可。 5 u; o5 Z5 h T6 o! r J, v3 Z 5 T2 r: K( Y/ M. b1 r1 e7 m 鼠标左键点击PC0,选择“GPIO_Output”,表示设置该引脚为输出模式。 鼠标左键点击PC1,选择“GPIO_Output”,表示设置该引脚为输出模式。. U( |8 B( i% Z$ o/ k" ]) s 鼠标左键点击PC2,选择“GPIO_Output”,表示设置该引脚为输出模式。 鼠标左键点击PC3,选择“GPIO_Output”,表示设置该引脚为输出模式。5 h9 d5 \9 G3 e & w8 V& I1 i$ l1 [4 ] 5 k' D. I7 ^! @+ _1 t! I
" ~: `( _; ?# W: S
6 Q& `7 l" b e8 P+ n" b (3)也根据自己的需求配置GPIO的参数,如输出方式、输出频率、上拉下拉等。因为GPIO控制LED的要求比较低,此处采用默认参数即可,不用修改。 2 T. } A7 T, R( g 0 I' R5 x9 q, B1 N
3 a5 q' V. N) v4 x& Z Z6 p; V ) U% ]9 N9 O1 ?- k: Z 3、配置项目工程参数 (1)配置时钟树,用于系统内部时钟,以及各个外设时钟等。此处选择外部8M晶振作为主时钟频率,内部最大倍频80MHz。2 S& w2 T! k. A9 @ 6 t- z' \: u. P+ f- S# a5 T' m
(2)完成配置工程。 备注:需要注意代码生成过程中的继承关系,如图所示:需要保留开发者自己编写的代码时,请根据配置设置,不然生成代码后会删除自己编写的代码(从这个方面也可以看出开发者备份自己的代码是多么的重要。)! `3 h+ ~6 Y+ o* ~7 v0 @2 o ; z$ s3 N+ [9 u2 o
1 I& Z' C; ?# z: H- t& p$ @
(3)生成代码。6 S" [# J5 h4 m' d) y6 m 备注:使用Generate CODE生成工程代码前,请确保文件路径无中文,否则会生成项目失败。$ T( Y8 l- v# @) ~ 0 `. z4 V; L* ^+ v
% I* x0 n" I, R% h (4)工程代码生成成功。 8 s- g' V$ l7 c) _% K
# S' b6 H [5 Q$ ?0 q! I 三、在KEIL 5中编写代码& c* K! A3 F$ ? 1、使用KEIL 5(MDK)打开项目工程文件 源码使用说明:使用前必须把项目工程复制到无中文路径的文件夹下使用。+ R7 M* `/ K, e4 @( J - N0 J' h- ?# a H3 o' c; Z2 \: c (1)找到刚才新建工程的存储路径,安装项目名称,打开项目工程.uvprojx。 - g* U: k. ]# w4 P4 U ( {3 l3 {; X# {7 f
2、添加跑马灯LED控制程序2 v0 {, M7 q/ V1 I (1)在main.c文件中控制程序,添加每隔200ms,LED1、LED2、LED3、LED4闪烁一次,实现跑马灯的流水点亮效果。 备注:自己添加的代码需要在 /* USER CODE BEGIN 3 */和 /* USER CODE END 3 */之间添加,否则STM32CubeMX更新代码时,会造成自己添加的代码丢失。1 Z. F3 j' g5 s* J. L
( G9 a. g- Q$ }, A1 @ m' \2 e. _ 4 `) s2 p& E/ H- ]! Z( @) P (2)main 函数代码如下所示:
3、设置编程仿真下载模式 (1)选择Options for target ...>>Debug>>J-Link/J-JTRACE Cortex,点击Settings>>选择Port(SW),可以看到搜索成功SW Device,表示芯片可用,可以下载。 0 J, I2 `2 a, `5 ?/ m: K 6 |* n% ?& ]' _+ P$ u
(2)点击编译,编译完成后提示“0 error(s),0 warning(s)”。, |! o8 B! P2 U+ q8 G
: t* y+ c. j* [ 1 X0 M. E! j6 \1 }6 M (3)点击Download(或者快捷键F8),即可下载程序。 # h. C5 w9 A W/ _. ~" D/ a ( J- I; V# H* z) S
4 F- b7 `0 V; w- b) I (4) 如果下载程序后,没有看到LED1、LED2、LED3、LED4闪烁,可以按下述方式设置一下(Reset and run表示下载后自动复位和重启运行)。或者重新彻底断电再次上电(或按开发板的Reset按键复位MCU即可)。 % n: I6 ^$ J7 X$ t# ?8 n
7 K5 x! @1 Z& p: A; Q4 f$ m 9 V' E, T! k4 A2 X * d- _0 J) y# y. d1 ~" o ; l6 K& O+ v+ Q$ |0 q 4、跑马灯效果展示' L4 ?. m3 Y5 Z1 }" { 程序烧录到开发板后,即可看到LED1、LED2、LED3、LED4流水点亮和熄灭,形成跑马灯的效果,如果开发板没有反应,请检查上述截图“Reset and Run”是否勾选或重新上电尝试。 |# S( G' m8 I$ j1 ]7 [" P8 E ———————————————— 版权声明:智能小屋ZYXC |
STM32L4R9 QuadSPI Flash通讯速率优化解析 32位总线的DMA传输适配核心方案
【STEVAL-STWINKT1B评测】运行Datalog固件并记录运行时间
【STEVAL-STWINKT1B评测】数字麦/模拟麦对比测试+音频配套上位机软件开发
【板卡评测】STEVAL-STWINKT1B读取 ACC/GYRO/MAG 实时数据
小白也能明白的STM32的低功耗与唤醒机制
【STM32入门学习路径指南】(四步走)
STM32和Arduino对比,谁更耐打?
STM32系统中2种数据掉电保护的方法
STM32 LL为什么比HAL高效?
STM32小白入门指南:从基础到OTA实现方案
微信公众号
手机版