STM32->利用库函数/寄存器点亮LED灯
一、STM32->利用库函数/寄存器点亮LED灯
1、库函数点灯
#include "led.h"
#include "stm32f10x.h"
void LED_Init(void)
{
GPIO_InitTypeDef led_init; //使能APB2时钟GPIC //rcc.h
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //结构体配置 (需要放在前面) //gpio.h
led_init.GPIO_Mode =GPIO_Mode_Out_PP; //推挽输出
led_init.GPIO_Pin =GPIO_Pin_1;
led_init.GPIO_Speed =GPIO_Speed_10MHz;
GPIO_Init(GPIOA,&led_init);//结构体的初始化
}
GPIO_ResetBits(GPIOA,GPIO_Pin_3); //需要低电平时可以用这个函数来拉低电平 gpio.h
GPIO_SetBits(GPIOA,GPIO_Pin_3); //需要高电平时可以用这个函数来拉高电平 gpio.h
2、寄存器点灯
void SystemInit(void)
{
//让编译器不报错
}
int main(void)
{
//配置GPIOA的时钟 起始地址:0x4002 1000+偏移地址0x18
*(unsigned int *)0x40021018 |=0x01 <<2; //*(unsigned int *):强制转换取地址
*(unsigned int *)0x40010800 |=0x01 <<4; //配置GPIOA1为输出模式0x4001 1000 + 0x04
*(unsigned int *)0x40010800 &=~(0x01 <<1); //配置GPIOA1输出低电平0x4001 1000 + 0Ch
}