- #include "stm32f10x.h"
- #include "stm32f10x_gpio.h"
- #define PCL GPIOC->BRR //使PC输出低电平
- #define PCH GPIOC->BSRR //使PC输出高电平
- void delayms(unsigned int ms);//延时函数
- void led(uint8_t a,uint8_t b);//LED显示程序a表示第几个,b表示灭0或亮1
- int main(void)
- {
- uint8_t n;
- GPIO_InitTypeDef GPIO_InitStructure;
- /* 使能LED对应GPIO的Clock时钟 */
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能LED1灯对应的GPIOC管脚时钟
- /* 初始化LED的GPIO管脚,配置为推挽输出 */ //设置端口
- GPIO_InitStructure.GPIO_Pin = 0xFFFF;//GPIO_Pin_2|GPIO_Pin_3 ; //LED灯对应的GPIO_Pin_2和3端口
- //设置对端口的模式
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置为 推挽(Push-Pull)输出
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//输出速率选择50MHZ(2,10,50三种速率)
- GPIO_Init(GPIOC, &GPIO_InitStructure);//调用GPIO初始化函数
- while (1)
- {
- for(n=0;n<8;n++)
- {
- led(n,1);//第几个亮
- delayms(500);//延时
- }
- }
- }
- void delayms(unsigned int ms)//延时函数
- {
- unsigned char a,b;
- while(ms--)
- for(b=254;b>0;b--)
- for(a=13;a>0;a--);
- }
- void led(uint8_t a,uint8_t b)//LED显示程序
- {
- PCL=0xffff;
- if(b){PCH=1<<a;}
- else {PCL=1<<a;}
- }
|