STMCU小助手
发布时间:2023-3-3 15:00
|
一、利用STM32CUBEMX生成工程框架# q- G( Z' K7 O' r7 R) l& I* P# ^# z# W 1.选择MCU / s8 Z" k$ ^) ]1 B. z
( U# s1 L# _$ f
$ l( w/ {8 I. F" o 2.配置时钟( ]9 a% W m7 |6 O 1 E# A! D; u- j% c, _
3.配置GPIO3 m# c: W2 h! i" Q 9 z1 ]" @, Q7 C
4. 配置Project Manager ) E4 r9 K3 X# p% h! f, ?7 U S; g
- ]" Z X* R* t% n8 I7 J
! _/ e( U7 _# ~' x) s 二、利用STM32CUBEMX生成初始化代码文件 5.打开工程文件. F' M% C# z0 d4 E; d5 d+ M% W
+ w$ U8 z& i0 F 6.编译Keil代码--生成的框架是否有错误
7.按模块添加代码 在gpio.c中添加代码& h1 `1 q3 C% e' ], a $ w+ x1 R/ ~8 V6 ]
+ g0 x/ f! Z) u2 n) C7 f 在gpio.h中声明函数 ( u% H$ \: j% i. f" m- j
9 J2 H* H+ i; | 在main.c中调用函数
8.配置Options
三、测试代码 9.下载运行
10.实验结果- D U9 L/ _; [3 m (1)LED_TEST函数的结果, X# r- m! v6 `4 f 9 G' b% @, L; x# b" Q
(2)LED_Disp函数的结果0 I2 D3 c& ?) ?" [ 首先解释一下这个函数的作用就是可以控制LD灯一个或几个同时亮,比如我传入的参数是0x44,转换为二进制即为0100 0100,1对应的灯就可以亮起来。 - A. _) o8 L" _ z$ R, E: |
5 f" I/ l; ~9 ` 四、函数学习 想要学习哪个函数就直接右击去看函数定义即可。+ }% e2 D% \, T! E* {& { w ; n- A* f& t$ C @
: d9 @" _& l7 I# _% A& w9 Y ( i$ e2 u/ R! W& q (1) void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)------翻转电平7 ]3 V( w S4 g' [& M 参数解释:- X8 C m- R! ^4 s GPIO_TypeDef *GPIOx:x从A-G, ^" ?( N# O5 I; z% T GPIO_Pin:可选项如下- A5 G' l, D' G( ?9 R
h9 s4 o0 d |5 U 例如:例:HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_8);翻转一次PC8的电平6 ^& h5 Q$ o3 V( N& v (2)void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)----写入 参数解释:前两个参数解释同上7 n* s9 C5 c k8 x 6 i( Y$ K) V& Y3 A/ Y 第三个参数:GPIO_PinState PinState取值如下:# e( j8 o& e9 d2 q4 X1 J* t0 { 5 l( m2 Y- ]! p0 V7 C- i' j. { GPIO_PIN_RESET 低电平+ C2 l) N1 Y$ S2 U5 P 3 I3 H4 o' ^( b, Z" ?, ` GPIO_PIN_SET 高电平 $ o# p7 ^' ?& G' E% j! W2 S 五、问题总结 在用CubMax生成框架配置GPIO初始时为什么要把每个引脚设置成高电平呢?4 Q$ N9 k4 x- B! P% R+ y! P; W 6 P0 I* s0 N9 n4 v# E$ m 解释:8 }( g9 v9 h( m* g% ?. z% y& X 首先看一下LED灯的原理: * e" E1 n0 {' m+ c
LED:当阳极电平>阴极电平时,LED导通发光 n* C, {) Z o; e 当PC8为高电平时灯才会亮, 当PC8为低电平时灯就不会亮/ F2 h% K' p& F+ L 1 Q p( g) G( C0 |! N3 i
当PC8-PC15为低电平时,灯才会亮,因为初始时希望LD灯不亮,灯的亮灭有个573锁存器在控制 6 T: ?3 f) e; k' |
$ I5 w2 `4 L) X1 d. @
6 g, _7 ^. c1 W) L 因此初始的时候把PC8-PC15都置成高电平,灯才是熄灭的状态6 g8 n3 X' O- X$ q, M' v' o ———————————————— 版权声明:想要优秀点儿 |
经验分享 | 基于STM32G4芯片TIM+SPI+DMA应用示例
STM32G47x 双 Bank 模式下在线升级
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【经验分享】STM32G4之基本定时器
NUCLEO-G474RE 扩展 LSM6DSO 传感器数据融合实操演示全解析
经验分享 | STM32G474 高精度定时器同步功能全解析 从内部互联到多芯片协同的实现方案
经验分享 | STM32G4双BANK启动应用演示
STM32G4 LPTIM+DMAMUX 实现并行输出应用示例
实战经验 | LAT1578 SAU对NSC分区的影响
经验分享 | STM32G474 HRTIM Triggered-half模式实现两相交错电源180°相位同步方案
微信公众号
手机版