STM32与51单片机区别在于配置环节,需要配置,不能直接控制寄存器,(直接使用寄存器麻烦且局限性高)
RCC寄存器,控制GPIOC的时钟
PCEN位为0,其他为1
//RCC寄存器,控制GPIOC的时钟
PC13口的模式
所以23 22 21 20位为0 0 1 1,换算成16进制为00300000
控制灯的亮灭
ODR=0,亮,ODR=00002000,灭 因为灯低电平点亮
13位写0为高电平,写1为低电平,写1为00002000;
直接控制寄存器(不推荐)
通过库函数封装之后完成命令(推荐)
#include "stm32f10x.h" // Device header int main(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//该函数开启使能时钟,GPIO的外设时钟 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));//将PC13口置为高电平 GPIO_ResetBits(GPIOC,GPIO_Pin_13);//将PC13号口置为低电平 while(1) { } }