(基于奋斗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,
基于神经网络的车辆牌照字符识别技术Java基础(三) String深度解析 dedecms网站被黑 劫持到其他网站如何解决精准手机号抓取,运营商大数据利用梆梆加固逻辑漏洞取巧脱壳QT 删除目录及文件Java小明A+B苹果不送充填器耳机真为环保?可能还是为了赚钱吧在Pytorch上使用summaryC#中字典的排序方法