一、LED简介
发光二极管,简称为 LED,是一种常用的发光器件,它由含 镓(Ga)、砷(As)、磷(P)、氮(N)等的 化合物 制成。通过 电子 与 空穴 复合释放能量发光,它在照明领域应用广泛。
发光二极管与普通二极管一样是由一个 PN结 组成,也具有 单向导电性。当给发光二极管加上 正向电压 后,从 P区 注入到 N区 的 空穴 和由 N区 注入到 P区 的 电子,在 PN结 附近数微米内分别与 N区 的 电子 和 P区 的 空穴 复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。发光二极管的 反向击穿电压 大于5伏。它的 正向伏安特性曲线 很陡,使用时必须 串联限流电阻 以控制通过二极管的电流。
二、原理图
三、程序设计
LED 初始化函数 :
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOC_CLK_ENABLE(); // 使能GPIOC的时钟
GPIO_InitStruct.Pin = GPIO_PIN_0; // 选择GPIO的引脚
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 设置为推挽输出模式
GPIO_InitStruct.Pull = GPIO_NOPULL; // 不使用上下拉
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; // 设置GPIO的输出速度为高速
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); // GPIO初始化函数
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET); // 默认输出高电平,LED熄灭
}
点亮 LED:
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_RESET); // 输出低电平,点亮LED
熄灭 LED:
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET); // 输出高电平,熄灭LED
LED 闪烁:
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0); // GPIO状态翻转,LED 闪烁
HAL_Delay(500); // 延迟500毫秒
时钟初始化函数 请在 STM32F1的时钟树 篇章查看;
main() 函数:
int main(void)
{
HAL_Init(); // HAL库初始化
system_stm32_clock_init(RCC_PLL_MUL9); // 时钟初始化
LED_Init();
while (1)
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_RESET); // 输出低电平,点亮LED
HAL_Delay(500); // 延迟500毫秒
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET); // 输出高电平,熄灭LED
HAL_Delay(500); // 延迟500毫秒
}
}
标签:HAL,PIN,点亮,08,LED,GPIOC,GPIO,500
From: https://www.cnblogs.com/kurome/p/17741669.html