STMCU小助手
发布时间:2022-4-25 22:00
|
点亮跑马灯! ?2 A) q* R& y# Z8 L 只要我们在STM32CubeIDE的设置中按照2.1.3来配置,更改io引脚更新时就不会覆盖掉我们新建的这几个文件以及文件夹。 这边以跑马灯为例,控制在IO口中已经定义好的两个引脚“IO_LED0”和”IO_LED1”。首先我们先修改“LED.h”中的代码使其调用main.h,并新建LED调用函数。 ( d$ b" |; T& j; }
! }. m1 j( F2 [5 \ h" v' [3 G 此时点击左上角的全部编译 按钮,此时应该顺利通过。
打开“gpio.c”查看gpio的初始化情况,可以看到程序设置过的引脚配置,产生了一段“IO_LED0_Pin”和“IO_LED1_Pin”的GPIO初始化代码。可以看到其中一行代码设置了两个IO电平的高低。
打开我们自己新建的“LED.c”文件,如法炮制的根据h文件的新建“LED_Run”函数。 并添加“HAL_GPIO_WritePin”函数。: n; R/ u: [& ~. M% z; ~ . l9 C3 I2 Q* r) C% ?; i
查看“HAL_GPIO_WritePin”函数的定义,可以看到“SET”是1,“RESET”是0。/ J4 P9 w% P8 w/ N4 P
接着我们在“LED_Run”函数中配置好相应的电平位,并添加HAL库自带的延时函数“HAL_Delay();”。& H* N6 W2 B; v+ k! b 开发板LED电路为串联接电源,因此高电平时LED关闭,低电平时LED开启。 添加完后的“LED_Run”程序代码如下图所示:5 ~( a+ a$ x, L7 @$ O / `- j$ E" J; F: O2 u
' c* E3 U4 J" D+ W+ g) ^: S3 K7 R# I 以下为程序源码:
之后在“main.c”函数的“USER CODE Includes”注释中添加“LED.h”。
并在主循环函数中添加调用“LED_Init”函数即可编译 。
切记在Main.c函数中添加代码一定要在规范位置添加代码,否则会被覆盖。1 J+ `- S: g& q5 q1 \* Q2 S9 x 5.10 编译和下载代码 t( G7 ?0 Y" Z9 x6 |% j0 d8 O: H 编译有三种方式: 1.点击左上菜单栏的编译图标, 2.点开project点“全部编译”,5 e" ^' v5 G6 ]1 R2 V$ {/ z 3.快捷键“Ctrl+B”。
5.11 生成HEX文件 STM32CubeIDE在编译后会自动生成烧录文件,默认生成的为bin二进制格式和elf二进制格式,这两种都可以用STM32CubeProgrammer烧录,但为了统一方便管理文件,这边还是推荐编译产生HEX格式文件。 右键点击工程文件打开属性,选择“C/C++Buil”->“Setting” ->“Tool Setting”: q& D) V% v0 P9 B U4 f # v# T# U: ^5 Y' j
! s' s% c* q% @0 u6 b( W 点击“MCU Post build outputs”,勾选“Convert toIntel Hex file”即可。
生成的文件可以在工程文件夹“Debug”下找到 j1 w2 ^/ F5 w; T W) q- ^! m
6 R& a) y8 C+ ?& S& n! w8 V! H |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版