STMCU小助手
发布时间:2023-1-14 18:52
|
一、开发板平台简介: 1、开发板资源简介 (1)开发板主芯片型号:STM32L431RCT62 @8 @2 a9 [8 K: I; Z. F1 G$ ? (2)开发板主芯片封装:LQFP-64_10x10x05P4 M9 i& Z% w- \0 ~8 m (3)开发板主芯片内核:ARM® Cortex®-M4 (4)开发板主芯片主频:80MHz4 l: \* l+ Y, g1 _: {. b5 a6 _ (5)开发板主芯片Flash大小:256KB' m' ^; i) r q5 } (6)开发板主芯片RAM大小:64KB . N$ b, t! Z# ~: Y, A# w/ f0 ^9 [: {
. e! B8 G- A. G$ _2 {' Y 2、LED灯资源 (1) STM32L431RCT6开发板共5个LED灯资源,其中一个红色LED为系统指示灯,指示开发板供电系统是否正常,如供电系统正常,红色LED为上电常亮状态,硬件原理图如下图所示:" r6 @ H6 G* g" ?/ a
0 a' C0 I" h- C: w6 x; L (2)其他四个LED灯为黄绿色可控LED,高电平点亮、低电平熄灭,计划用LED常亮验证看门狗的作用,硬件原理图如下图所示:8 O2 G7 j+ m2 H6 i, r7 e
& e2 M# p8 d3 U- P: I2 E3 \- N/ y% h 3、按键输入工作原理 按键输入原理:读取GPIO引脚的输入高低电平。硬件原理图设计中通常会加入100nf的硬件消抖,以及ESD二极管防止静电损坏。 ; S m% R, l: o7 {! P3 E' d; L% s5 | 如下硬件原理图所示:默认PA0输入上拉,按键按下后高电平转换为低电平。7 V% O6 I6 K: i
; ]8 |$ O3 P" ]7 W: _- D 二、按键输入实验过程5 E' k Z0 u3 ^7 H: M l( ^ 1、新建STM32CubeMX基础工程 (1)打开STM32CubeMX,点击“File”-->"New Project"6 b. J4 G6 z6 D/ f: B
2 Z. }) X/ J' S9 ]. M+ ~/ L5 E (2)等待打开主芯片选项界面(大约1分钟时间)。2 F# }! q( d2 b# X 9 }( D/ h' O, \1 u
(3)昨天搜索框中输入(或选择)所需的主芯片型号(因为我们用的是STM32L431RCT6开发板,所以此处选择STM32L431RC),然后在右下角选择STM32L431RCTx(因为开发板主芯片是STM32L431RCT6),左键双击即可打开新建的项目。0 ~+ h# v9 K0 T
& h2 S' R' @6 o6 o (4)选择时钟源。 & M4 `9 G: v, M" X \ W, y/ ? p& n; s/ v (1)因为开发板上有8M外部时钟,硬件原理图如下所示,所以此处选择使用外部高速时钟(HSE)。 $ j- v0 k/ u; I! d( S2 g# ^+ X: H
(2)因为我们没有用到外部低速时钟(LSE),此处不做处理,如下图所示。 s4 P1 {% _; x* I
. t8 f; J- A9 `7 G4 w 2、配置GPIO控制LED (1)查开发板原理图得,LED1、LED2、LED3、LED4的控制引脚分别为:9 \0 L2 }3 T) u- y4 i ( U. }# F; _6 n1 N( q. S LED1——PC0 LED2——PC1 LED3——PC21 ?3 J! n# Q$ Q( ~ LED4——PC3. h0 [% L2 h3 J$ i+ ~. m _/ b& i u0 k8 p/ i* a (2)配置LED的控制引脚为输出,输出频率、输出方式默认即可。8 \9 Q& d3 r6 W) p% d. J 鼠标左键点击PC0,选择“GPIO_Output”,表示设置该引脚为输出模式。6 O( f, w7 g& k 鼠标左键点击PC1,选择“GPIO_Output”,表示设置该引脚为输出模式。 鼠标左键点击PC2,选择“GPIO_Output”,表示设置该引脚为输出模式。 鼠标左键点击PC3,选择“GPIO_Output”,表示设置该引脚为输出模式。& s8 ]+ n0 u6 n/ J ; i3 h( a3 Z+ l/ `! `
(3)也根据自己的需求配置GPIO的参数,如输出方式、输出频率、上拉下拉等。因为GPIO控制LED的要求比较低,此处采用默认参数即可,不用修改。! z8 D2 L" v8 ?* i
3、配置PA0按键输入模式. [) f# Y5 V' L7 _9 {! ^ 如下图所示:右键点击PA0,选择GPIO_Input,配置PA0按键输入模式,默认内部Pull up上拉即可。 . z5 D; e+ a! O: V
3、配置项目工程参数3 s& b. @. [0 S3 }# r, \ (1)配置时钟树,用于系统内部时钟,以及各个外设时钟等。此处选择外部8M晶振作为主时钟频率,内部最大倍频80MHz。 2 {' ~- G' W9 e ~, ^
0 g& M) p7 m! _ (2)完成配置工程。* f0 n l2 u1 L 备注:需要注意代码生成过程中的继承关系,如图所示:需要保留开发者自己编写的代码时,请根据配置设置,不然生成代码后会删除自己编写的代码(从这个方面也可以看出开发者备份自己的代码是多么的重要。) H9 ^# \; C9 a8 t, O' A: O; W- z9 K 2 D+ x2 g8 Q/ a& Y! g
* G1 Q& I6 b8 }5 @ (3)生成代码。 备注:使用Generate CODE生成工程代码前,请确保文件路径无中文,否则会生成项目失败。' i% L- f2 Y0 b- G9 r * U+ n/ Z% T5 ]4 Q
(4)工程代码生成成功。 * w1 u' _) ^4 }
三、在KEIL 5中编写代码) M3 U d {* X$ B1 Y 1、使用KEIL 5(MDK)打开项目工程文件 源码使用说明:使用前必须把项目工程复制到无中文路径的文件夹下使用。 (1)找到刚才新建工程的存储路径,安装项目名称,打开项目工程.uvprojx。" d. n, |5 { D+ m1 @0 ^: Q, n $ H Z9 O: [- T8 c# ^
$ f+ |: L0 Q8 l2 i) S1 ] 2、添加按键输入验证程序/ Z4 r) c- U2 L, z& } (1)main.c文件中,初始化LED1、LED2、LED3、LED4默认为点亮,并在while循环中添加按键输入控制程序,如下所示:实现按键输入后LED1、LED2、LED3、LED4点亮和熄灭之间反转切换。; f2 c# h0 _ z6 X# h( h7 ? 备注:自己添加的代码需要在 /* USER CODE BEGIN 3 */和 /* USER CODE END 3 */之间添加,否则STM32CubeMX更新代码时,会造成自己添加的代码丢失。3 h+ {2 L5 [2 u2 z% V. h 4 p" ]3 l! @" i+ Y/ l! F m, G
(2)main 函数代码如下所示:- x; q1 N( o( P3 d- Z
3、设置编程仿真下载模式 (1)选择Options for target ...>>Debug>>J-Link/J-JTRACE Cortex,点击Settings>>选择Port(SW),可以看到搜索成功SW Device,表示芯片可用,可以下载。
(2)点击编译,完成后提示“0 error(s),0 warning(s)”。' l! f- N3 L' h! i+ g1 `% y , \: @1 L+ q9 w1 k& p( s
(3)点击Download(或者快捷键F8),即可下载程序。
+ b. ~9 [* i2 s, ~( k (4) 如果下载程序后,没有看到LED1、LED2、LED3、LED4点亮,可以按下述方式设置一下(Reset and run表示下载后自动复位和重启运行)。或者重新彻底断电再次上电(或按开发板的Reset按键复位MCU即可)。- B- D+ D+ T- M: i6 X 7 O) r% o7 Z. H& L
( e) e& k5 U' b( n6 p" i* n 2 ]# q( V2 j _4 l5 ^( c 4、按键输入实验效果展示 程序烧录到开发板后,即可看到LED1、LED2、LED3、LED4初始化后常亮,按下侧按键K1即可实现LED1、LED2、LED3、LED4点亮和熄灭的反转切换。# a) [2 ?, d9 u ———————————————— 版权声明:智能小屋ZYXC 1 e5 M9 O7 q, ]# \ ' t7 r& T- t( y$ ^/ M# _ |
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实现方案
微信公众号
手机版