STMCU小助手
发布时间:2023-3-3 15:00
|
一、利用STM32CUBEMX生成工程框架 1.选择MCU5 `+ t: {2 O D- G& C2 m - e( b: P& l5 d/ o7 S) |
+ d3 I }0 q6 q3 H0 { 2.配置时钟& I, Q+ y! C" R % G) ^) \: n( P! D; {
3.配置GPIO
4. 配置Project Manager2 ?2 g. w+ Q3 o3 O# F/ T' k5 L
4 m3 Y% b% r9 d O% B% L
9 h6 \9 r' w& k+ D8 I. w 6 ]7 `: O. K" r$ q 二、利用STM32CUBEMX生成初始化代码文件8 l8 ?0 |& X! G; {- x 5.打开工程文件" E0 E( W! w$ ]. a) p" J ' L* W! e5 o: A$ o# h, L9 y
) w# `1 ^% g# M2 s u# G# a r 6.编译Keil代码--生成的框架是否有错误
4 }! _+ u, H/ L1 P 7.按模块添加代码 : J7 y9 y: ~' H/ k9 o 在gpio.c中添加代码
# o9 @* p. I! b) L% u; p& u 在gpio.h中声明函数 % @" I2 P9 ^6 z9 f' ~% J
在main.c中调用函数
8.配置Options 7 f$ S3 f: r+ t9 w- C
$ G; o& Q' I( L. C
6 x# R+ d3 ^/ P k4 A* F* i1 Q 三、测试代码 9.下载运行 2 [+ f- d: F/ O6 \" ^1 K+ V
10.实验结果 (1)LED_TEST函数的结果2 ]2 O1 {4 I0 K2 _! O+ }! k 8 Y7 a: i0 H. K) W* k3 k: r8 j
(2)LED_Disp函数的结果! y% X' g, ^7 o4 |% v 首先解释一下这个函数的作用就是可以控制LD灯一个或几个同时亮,比如我传入的参数是0x44,转换为二进制即为0100 0100,1对应的灯就可以亮起来。
5 r# q9 K/ P6 `) z3 i2 Q, g 四、函数学习 想要学习哪个函数就直接右击去看函数定义即可。. W5 f+ h8 I" B1 |9 @7 ^' P4 a S- y6 r" ~; K& B, y2 H
(1) void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)------翻转电平 参数解释:9 T$ @4 L9 i9 G6 L7 ? GPIO_TypeDef *GPIOx:x从A-G GPIO_Pin:可选项如下 % ]/ j, ]$ k) S$ G/ {
2 V6 s9 [5 @/ D1 i 例如:例:HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_8);翻转一次PC8的电平, K8 p$ p: x' a Q! T _ S$ `: F (2)void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)----写入 参数解释:前两个参数解释同上0 I. V3 y7 a9 S, U5 p: Y , D" Z% w9 g R; I 第三个参数:GPIO_PinState PinState取值如下: - V0 ^4 T8 P0 L2 X, T# p5 E GPIO_PIN_RESET 低电平3 n1 I7 S4 R+ S" F, ], S/ Z GPIO_PIN_SET 高电平- M/ Z. u1 M! P( g - @7 ?' }4 E' c : \3 |- \0 N& q: l 五、问题总结$ o+ [# e3 C/ w' H 在用CubMax生成框架配置GPIO初始时为什么要把每个引脚设置成高电平呢? 9 z0 ^# S8 i" P" m0 r8 s0 | 解释: ' q1 {: z4 F( T- b1 j 首先看一下LED灯的原理:' v, }+ c1 x. {) p ; Z1 d* z7 `2 L, h9 N8 |1 Z
LED:当阳极电平>阴极电平时,LED导通发光 当PC8为高电平时灯才会亮, 当PC8为低电平时灯就不会亮 % W) z& J _5 c) l1 {
. t9 @& _2 K6 U9 B 当PC8-PC15为低电平时,灯才会亮,因为初始时希望LD灯不亮,灯的亮灭有个573锁存器在控制+ L% C$ I. X& K/ N9 L+ |& z( W 5 M$ A% q N1 e! P! u" H4 y& T
因此初始的时候把PC8-PC15都置成高电平,灯才是熄灭的状态 ————————————————' G, G9 N! `; ^4 V3 z$ S3 L; V- s 版权声明:想要优秀点儿 |
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°相位同步方案
STM32大神笔记,超详细单片机学习汇总资料
微信公众号
手机版