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);

    }
}
复制代码

 

posted on   四马路弗洛伊德  阅读(64)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示