stm32标准库点灯
使用标准库3.5.0版本进行点灯操作
LED原理图:
根据原理图我们得知,LED连接在PC13口,且低电平输出(0是亮,1是灭);
GPIO的八种工作模式(来源于江科大ppt)
IO口采用推挽输出。
要使用芯片输出高低电平,需要一个时钟产生脉冲,则根据芯片参考手册设置控制IO口的时钟寄存器RCC_APB2ENR ,使能对应的IO口。
使能完时钟寄存器后,配置端口寄存器GPIOx_CRH
以下是代码实现:
#include "stm32f10x.h" // Device header #include "Delay.h" int main() { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //使能时钟寄存器 GPIO_InitTypeDef GPIO_InitStructure; //创建GPIO初始化结构体 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //GPIO设置为推挽输出 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //使能LED对应的IO端口 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC,&GPIO_InitStructure); //使用GPIO_Init函数完成初始化 //GPIO_SetBits(GPIOC,GPIO_Pin_13); //GPIO_ResetBits(GPIOC,GPIO_Pin_13); while(1) { /*GPIO_SetBits(GPIOC,GPIO_Pin_13); Delay_ms(500); GPIO_ResetBits(GPIOC,GPIO_Pin_13); Delay_ms(500); GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET); Delay_ms(500); GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET); Delay_ms(500); */ GPIO_WriteBit(GPIOC,GPIO_Pin_13,(BitAction)0); Delay_ms(500); GPIO_WriteBit(GPIOC,GPIO_Pin_13,(BitAction)1); Delay_ms(500); } }