公司架设网站费用怎么做分录,网站建设排名优化公司,旅游网站如何做,西青网站建设目录 cubeMX配置#xff1a;
代码模板#xff1a;
注意#xff1a; cubeMX配置#xff1a;
原理图#xff0c;其中PD2高电平使能锁存器#xff0c;PC8-15默认给高电平#xff0c;放置上电初始化LED亮 74HC573是八路输出锁存器 1脚是使能#xff0c;低电平有效#…目录 cubeMX配置
代码模板
注意 cubeMX配置
原理图其中PD2高电平使能锁存器PC8-15默认给高电平放置上电初始化LED亮 74HC573是八路输出锁存器 1脚是使能低电平有效高电平输出高阻 2~9是输入PC8-PC15 19~12是输出 11是锁存即PD2: 高电平是同步,即输出跟随输入变化 低电平锁存,即输出不再改变 引脚设置只用设置PD2为输出模式其他的引脚拉高让灯默认熄灭或者不拉高在程序初始化的时候将LED全部熄灭PD2在低电平情况下关闭所以默认状态就好 添加库文件夹路径并新建LED库文件 main.h添加宏定义 添加头文件 测试led 代码模板 led.c
#include led.h // 引入 LED 相关的头文件void LED_disp(uint8_t led)
{HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET); // 将 GPIOD 引脚 2 设置为高电平可能是控制 LED 的锁存器HAL_GPIO_WritePin(GPIOC, GPIO_PIN_All, GPIO_PIN_SET); // 将 GPIOC 所有引脚设置为高电平熄灭之前的 LEDHAL_GPIO_WritePin(GPIOC, led 8, GPIO_PIN_RESET); // 将 GPIOC 中对应位的引脚设置为低电平点亮指定的 LEDHAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET); // 将 GPIOD 引脚 2 设置为低电平锁存器锁住 GPIOC 的引脚状态
}uint32_t led_tick 0; // 定义一个无符号 32 位整型变量 led_tick用于记录上次 LED 变换的时间戳
uint8_t led_num 0; // 定义一个无符号 8 位整型变量 led_num用于记录当前要显示的 LED 状态void LED_proc()
{if (uwTick - led_tick 1000) // 如果当前时间与上次 LED 变换的时间间隔小于 1000 毫秒则直接返回不执行 LED 变换操作return;led_tick uwTick; // 更新 LED 变换的时间戳为当前时间if (led_num ! 0) // 如果当前 LED 状态不为 0led_num 0; // 将 LED 状态设为 0熄灭所有 LEDelseled_num 0xff; // 否则将 LED 状态设为 0xff点亮所有 LEDLED_disp(led_num); // 调用 LED_disp 函数根据新的 LED 状态进行 LED 显示
}注意
‘led 8’是将‘led’这个字符串在相应寄存器中左移八位其中相应位置是1的拉低RESET即点亮led if(led_num ! 0) led_num 0; else led_num 0xff; 这一段实现了led的闪烁 led.h
// LED.h 头文件的 ifndef、define、endif 结构用于防止头文件被多次包含
#ifndef _LED_H_
#define _LED_H_// 包含 main.h 头文件以便在 LED.h 中使用其中定义的类型和宏
#include main.h// LED_Disp 函数的声明
void LED_disp (uint8_t led);
void LED_proc (void);#endif // 结束 ifndef _LED_H_