stm32使用固件库点亮LED灯
1. 项目:使用stm32f10x点亮LED灯,并实现流水灯效果。
2. 代码:
main.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include "stm32f10x.h" #include "bsp_led.h" /*延时函数*/ void Delay(uint32_t count) { for (;count!= 0; count--); } int main( void ) { LED_GPIO_Config(); while (1) { // //方法1 // GPIO_SetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN); //关灯 // Delay(0xfffff); // GPIO_ResetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN); /*开灯*/ // Delay(0xfffff); //方法2 LED_G(OFF); //关灯 Delay(0xffffff); LED_G(ON); /*开灯*/ Delay(0xffffff); } } |
bsp_led.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include "bsp_led.h" void LED_GPIO_Config( void ) { GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, ENABLE); GPIO_InitStruct.GPIO_Pin = LED_G_GPIO_PIN; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(LED_G_GPIO_PORT, &GPIO_InitStruct); } |
bsp_led.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #ifndef __bsp_led_h #define __bsp_led_h #include "stm32f10x.h" //方法1 #define LED_G_GPIO_PIN GPIO_Pin_0 #define LED_G_GPIO_PORT GPIOB #define LED_G_GPIO_CLK RCC_APB2Periph_GPIOB //方法2 #define ON 1 #define OFF 0 #define LED_G(a) if(a) GPIO_SetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN); \ else GPIO_ResetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN); void LED_GPIO_Config( void ); #endif /*__bsp_led_h*/ |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!