代码如下:bsp_led.h
#ifndef __LED_H
#define __LED_H
#include "stm32f10x.h"
#define macLED1_GPIO_PORT GPIOB
#define macLED1_GPIO_CLK RCC_APB2Periph_GPIOB
#define macLED1_GPIO_PIN GPIO_Pin_5
#define macLED2_GPIO_PORT GPIOB
#define macLED2_GPIO_CLK RCC_APB2Periph_GPIOB
#define macLED2_GPIO_PIN GPIO_Pin_0
#define macLED3_GPIO_PORT GPIOB
#define macLED3_GPIO_CLK RCC_APB2Periph_GPIOB
#define macLED3_GPIO_PIN GPIO_Pin_1
#define ON 0
#define OFF 1
#define LED1(a) if(a) \
GPIO_SetBits(macLED1_GPIO_PORT,macLED1_GPIO_PIN);\
else \
GPIO_ResetBits(macLED1_GPIO_PORT,macLED1_GPIO_PIN)
#define LED2(a) if(a) \
GPIO_SetBits(macLED2_GPIO_PORT,macLED2_GPIO_PIN);\
else \
GPIO_ResetBits(macLED2_GPIO_PORT,macLED2_GPIO_PIN)
#define LED3(a) if(a) \
GPIO_SetBits(macLED3_GPIO_PORT,macLED3_GPIO_PIN);\
else \
GPIO_ResetBits(macLED3_GPIO_PORT,macLED3_GPIO_PIN)
void LED_GPIO_Config(void);
#endif
bsp_led.c
#include "bsp_LED.h"
void LED_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(macLED1_GPIO_CLK,ENABLE);
GPIO_InitStructure.GPIO_Pin = macLED1_GPIO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(macLED1_GPIO_PORT,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = macLED2_GPIO_PIN;
GPIO_Init(macLED2_GPIO_PORT,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = macLED3_GPIO_PIN;
GPIO_Init(macLED3_GPIO_PORT,&GPIO_InitStructure);
GPIO_SetBits(macLED1_GPIO_PORT,macLED1_GPIO_PIN);
GPIO_SetBits(macLED2_GPIO_PORT,macLED2_GPIO_PIN);
GPIO_SetBits(macLED3_GPIO_PORT,macLED3_GPIO_PIN);
}
main.c
#include "stm32f10x.h"
#include "bsp_LED.h"
/**
* @brief Main program.
* @param None
* @retval None
*/
void Delay(__IO u32 nCount);
int main(void)
{
while (1)
{
LED1(ON);
Delay(0x0FFFEF);
LED1(OFF);
LED2(ON);
Delay(0x0FFFEF);
LED2(OFF);
LED3(ON);
Delay(0x0FFFEF);
LED3(OFF);
}
}
void Delay(__IO u32 nCount)
{
for(;nCount!=0;nCount--);
}
jtag(SMD模式,只用了4根线)和ISP下载都试了,下载成功了,但是板子上灯不亮
用的是mini初学板,LED的引脚是查的光盘中的原理图
看到书上说如果GPIO复用了其他的引脚还需要打开其他的始终不知道是不是这个问题 |