流浪のwolf

卷帝

导航

点亮PC13- 使用寄存器点亮

#include "stm32f10x.h"                  // Device header

int main(void)
{
    // 打卡GPIOC的时钟
    RCC->APB2ENR = 0x00000010;
    GPIOC->CRH = 0x00300000;
    // 控制PC13等是否点亮 全0 为亮  00002000是灭灯
    GPIOC->ODR = 0x00000000;
    while(1)
    {
        
    }
}

 使用库函数点亮:封装了直接操作寄存器的代码;

#include "stm32f10x.h"                  // Device header

int main(void)
{
    // 配置外设时钟
    // RCC_APB2PeriphClockCmd 2 个参数 1. 设备 2. 是否
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    // 定义一个 GPIO_InitTypeDef 结构体
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
    // 设置高电频开始电灯  -- 灯灭
    // GPIO_SetBits(GPIOC,GPIO_Pin_13);
    // 低电频  -- 灯亮
    GPIO_ResetBits(GPIOC,GPIO_Pin_13);
    while(1)
    {
        
    }
        
}

 

ps:

#define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
#define GPIO_Pin_1                 ((uint16_t)0x0002)  /*!< Pin 1 selected */
#define GPIO_Pin_2                 ((uint16_t)0x0004)  /*!< Pin 2 selected */
#define GPIO_Pin_3                 ((uint16_t)0x0008)  /*!< Pin 3 selected */
#define GPIO_Pin_4                 ((uint16_t)0x0010)  /*!< Pin 4 selected */
#define GPIO_Pin_5                 ((uint16_t)0x0020)  /*!< Pin 5 selected */
#define GPIO_Pin_6                 ((uint16_t)0x0040)  /*!< Pin 6 selected */
#define GPIO_Pin_7                 ((uint16_t)0x0080)  /*!< Pin 7 selected */
#define GPIO_Pin_8                 ((uint16_t)0x0100)  /*!< Pin 8 selected */
#define GPIO_Pin_9                 ((uint16_t)0x0200)  /*!< Pin 9 selected */
#define GPIO_Pin_10                ((uint16_t)0x0400)  /*!< Pin 10 selected */
#define GPIO_Pin_11                ((uint16_t)0x0800)  /*!< Pin 11 selected */
#define GPIO_Pin_12                ((uint16_t)0x1000)  /*!< Pin 12 selected */
#define GPIO_Pin_13                ((uint16_t)0x2000)  /*!< Pin 13 selected */
#define GPIO_Pin_14                ((uint16_t)0x4000)  /*!< Pin 14 selected */
#define GPIO_Pin_15                ((uint16_t)0x8000)  /*!< Pin 15 selected */
#define GPIO_Pin_All               ((uint16_t)0xFFFF)  /*!< All pins selected */

 

posted on 2023-11-05 14:02  流浪のwolf  阅读(68)  评论(0编辑  收藏  举报