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); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律