根据野火的程序,结合自己的板子写的,其实主要就吧引脚换一换就行了,so easy
#include "stm32f10x.h"
#include "led.h"
//#define MI_ERR (-2)
void Delay(__IO u32 nCount);
/*
* 函数名:main
* 描述 :主函数
* 输入 :无
* 输出 :无
*/
int main(void)
{
/* LED 端口初始化 */
LED_GPIO_Config();
while (1)
{
LED1( ON );
LED2( ON ); // 亮
Delay(0x0FFFEF);
LED1( OFF );
LED2( OFF );
Delay(0x0FFFEF);
/*LED3( ON );
Delay(0x0FFFEF);
LED3( OFF ); */
}
}
<span style="font-family: Arial, Helvetica, sans-serif;">void Delay(__IO u32 nCount) //简单的延时函数</span>
{
for(; nCount != 0; nCount--);
}
上面的是主函数,下面是一些供调用的函数定义一些开关和结构体之类的。
<pre name="code" class="cpp">#ifndef __LED_H
#define __LED_H
#include "stm32f10x.h"
/* the macro definition to trigger the led on or off
* 1 - off
- 0 - on
*/
#define ON 1
#define OFF 0
//带参宏,可以像内联函数一样使用
#define LED1(a) if (a) \
GPIO_ResetBits(GPIOA,GPIO_Pin_8);\
else \
GPIO_SetBits(GPIOA,GPIO_Pin_8)
#define LED2(a) if (a) \
GPIO_ResetBits(GPIOC,GPIO_Pin_9);\
else \
GPIO_SetBits(GPIOC,GPIO_Pin_9)
/*#define LED3(a) if (a) \
GPIO_SetBits(GPIOC,GPIO_Pin_5);\
else \
GPIO_ResetBits(GPIOC,GPIO_Pin_5)*/
void LED_GPIO_Config(void);
#endif /* __LED_H */
#include "led.h"
/*
* 函数名:LED_GPIO_Config
* 描述 :配置LED用到的I/O口
* 输入 :无
* 输出 :无
*/
void LED_GPIO_Config(void)
{
/*定义一个GPIO_InitTypeDef类型的结构体*/
GPIO_InitTypeDef GPIO_InitStructure;
/*开启GPIOC的外设时钟 (我的是GPIOA)*/
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);
/*选择要控制的GPIOC引脚*/ /*我是是0和1*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
/*设置引脚模式为通用推挽输出*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
/*设置引脚速率为50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/*调用库函数,初始化GPIOC*/
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* 关闭所有led灯 我的刚好相反,我的应该用reset*/
GPIO_ResetBits(GPIOA, GPIO_Pin_8);
/*定义一个GPIO_InitTypeDef类型的结构体*/
/*开启GPIOC的外设时钟 (我的是GPIOA)*/
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);
/*选择要控制的GPIOC引脚*/ /*我是是0和1*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
/*设置引脚模式为通用推挽输出*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
/*设置引脚速率为50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/*调用库函数,初始化GPIOC*/
GPIO_Init(GPIOC, &GPIO_InitStructure);
/* 关闭所有led灯 我的刚好相反,我的应该用reset*/
GPIO_ResetBits(GPIOC, GPIO_Pin_9);
}