(基于奋斗stm32_v5开发板)

1.创建工程之配置库文件

2.编写main.c代码
#include"stm32f10x.h" #define ON 1 #define OFF 0 #define DELAY_TIME 0x3FFFFF
enum { 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);
else GPIO_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.出现问题排除

(一)

解决方法:给开发板上电

(二)

解决方法:

排错前:下方空无一物

排错后:

技术
©2019-2020 Toolsou All rights reserved,
Element-Ui组件 Message 消息提示, alert 弹窗Java:案例理解-接口回调element-ui踩坑记录【Golang 基础系列十】Go 语言 条件语句之if使用css样式设计一个简单的html登陆界面2020顺丰前端暑期实习面经(已过)无孔化就是手机的未来?还有很多问题需要解决【C#】实现学生成绩信息管理系统云原生应用如何做到低成本获得高稳定?用HTML+CSS做一个漂亮简单的个人网页