stm32f103 LED灯简单程序实现
(基于奋斗stm32_v5开发板)
1.创建工程之配置库文件
2.编写main.c代码
#include"stm32f10x.h"#define ON 1
#define OFF 0#define DELAY_TIME 0x3FFFFFenum
{LED1 = 0,LED2,LED3,MAX_LED,
};typedef struct led_gpio_s
{int num; /* LED编号 */GPIO_TypeDef *group; /* LED使用的GPIO在哪一组: GPIOB or GPIOD */ uint16_t pin; /* LED使用的GPIO组中的那一个pin: GPIO_Pin_x */
} led_gpio_t;led_gpio_t leds_gpio[MAX_LED] =
{{LED1, GPIOB, GPIO_Pin_5}, /* LED1 用的GPB5 */{LED2, GPIOD, GPIO_Pin_6}, /* LED2 用的GPD6 */{LED3, GPIOD, GPIO_Pin_3}, /* LED3 用的GPD3 */
};void init_led_gpio(void)
{int i;GPIO_InitTypeDef GPIO_InitStructure;/* 使能PB和PD组 GPIO的时钟 */RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOD , ENABLE); /*设置 PB5(LED1), PD6(LED2), PD3(LED3)为 GPIO 输出推免模式,口线翻转速度为50MHz */for(i=0; i<MAX_LED; i++){/*设置 PB5(LED1)为 GPIO 输出推免模式,口线翻转速度为50MHz */GPIO_InitStructure.GPIO_Pin = leds_gpio[i].pin; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(leds_gpio[i].group, &GPIO_InitStructure); }
}void turn_led(int which, int cmd)
{if(which<0 || which> MAX_LED )return;if(OFF == cmd)GPIO_ResetBits(leds_gpio[which].group, leds_gpio[which].pin);elseGPIO_SetBits(leds_gpio[which].group, leds_gpio[which].pin);
}void Delay(__IO uint32_t nCount)
{for(; nCount != 0; nCount--) ;
}int main(void)
{/* 初始化系统时钟 */SystemInit();/* 初始化各个LED的GPIO管脚 */init_led_gpio();while(1){/* 把LED1、LED2、LED3点亮 */turn_led(LED1, ON);turn_led(LED2, ON);turn_led(LED3, ON);Delay(DELAY_TIME);/* 把LED1、LED2、LED3灭掉 */ turn_led(LED2, OFF);turn_led(LED1, OFF);turn_led(LED3, OFF);Delay(DELAY_TIME);}
}
(进行相关设置并编译)
3.配置J-LINK调试
开发板连接:
调试:
4.LED灯闪烁现象(效果:三灯以一定频率闪烁)
5.出现问题排除
(一)
解决方法:给开发板上电
(二)
解决方法:
排错前:下方空无一物
排错后:
stm32f103 LED灯简单程序实现相关推荐
- 52单片机led灯闪烁c语言程序,单片机LED灯闪烁程序
原标题:单片机LED灯闪烁程序 点亮 小灯的程序我们第二课完成了,就是让 LED = 0.熄灭小灯的程序也很简单,就是 LED = 1.点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点 ...
- 单片机c语言led灯闪烁程序,单片机LED灯闪烁程序
点亮 LED 小灯的程序我们第二课完成了,就是让 LED = 0.熄灭小灯的程序也很简单,就是 LED = 1.点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点亮和熄灭小灯,就成了闪烁 ...
- 51C语言中断LED闪烁,单片机定时器中断实现LED灯闪烁程序
运用定时器0工作在方式1(16位计数器)实现LED灯的闪烁.先来看看定时器0工作在方式1的逻辑结构图. 从上图可以看到,GATE先经过非门,再和INT0引脚作为或门的输入.这里简单提一下数字电路中的与 ...
- 3.6 LED灯闪烁程序
版权声明:本文为芝麻软件工作室原创文章,未经芝麻软件工作室允许不得转载. https://blog.csdn.net/softn/article/details/51823350 点亮 LED 小灯的 ...
- 按键控制led灯python程序_树莓派使用threading函数实现多按键控制LED灯
讲两个知识点.一个是关于上拉和下拉,另一个是关于threading函数. 1.上拉电阻和下拉电阻 上拉就是把一个不确定的信号通过一个电阻连接到高电位,这样在开关断开是信号为高电位,开关合上时信号为低电 ...
- 52单片机led灯闪烁c语言程序,单片机 LED 灯闪烁程序
点亮 LED 小灯的程序我们第二课完成了,就是让 LED = 0.熄灭小灯的程序也很简单,就是 LED = 1.点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点亮和熄灭小灯,就成了闪烁 ...
- 按键控制led灯python程序_按键控制led灯
//通过按键控制对应的led灯亮灭,按一下亮,再按一下灭,消抖时间20ms module key_led ( input clk , rst_n, input [2:0]key , output l ...
- 51单片机led灯闪烁程序C语言,51单片机控制led灯闪烁程序
Keil 写程序的过程,建立工程-->保存工程-->建立文件-->添加文件到工程-->编写程序-->编译-->下载程序. #include sbit LED = P ...
- python流水灯简单程序_简单流水灯的实现程序
单片机流水灯程序如下: (1)流水灯的汇编语言实现 ORG 0000H ;程序从0地址开始 START: MOV A,#0FEH ; AC ...
最新文章
- BaaS模式的开发思路
- swoole websocket服务
- dnf超时空漩涡副本路线流程图_DNF:超时空漩涡开荒全攻略一览,你顺利通关了么?...
- TComboBox下拉取值
- PHP代码优化的细节
- (转)如果知道dll文件是面向32位系统还是面向64位系统的?
- 在Kubernetes上运行区块链服务(BaaS)
- 电商库存详解:三层(销售层、调度层、仓库层)来看库存设计
- MongoDB索引,性能分析
- oracle之三闪回flashback
- 2017年初BAT的JAVA面试题汇集
- 用EasyPoi导入Excel
- ShowAPI识别验证码
- PTA题目:顺序表基本操作
- 显卡对应的Compute Capability值
- 一个草根前端人的焦虑
- Java游戏聊斋聂小倩_【聊斋故事汇】之聂小倩(篇一)
- mysql将公历农历转换_SQL农历转换函数(显示中文格式,加入润月的显示)
- Favicon.ico图片在线制作网站PHP源码+支持多种图片格式转换
- Python常用模块4-Python的datetime及time模块简介