RCC最常用的三个函数
RCC AHB外设时钟控制
- 可以失能或者失能AHB外设时钟
- 第一个参数就是选择哪一个外设(包含了STM32互联设备和其他设备)
- 第二个参数是enable或者disable
RCC APB2外设时钟控制
RCC APB1外设时钟控制
GPIO的库函数
当前需要了解的是前面的这些函数
GPIO_DeInit
- 参数可以写GPIOA、GPIOB
- 调用这个函数之后,所指定的GPIO外设就会被复位
GEIO_AFIODeInit
- 可以复位AFIO外设
GPIO_SetBits
- 可以把指定端口改写为高电平
GPIO_ResetBits
- 把指定的端口改为低电平
GPIO_WriteBit
- 根据第三个参数的值来设置指定端口
GPIO_Write
- 可以对16个端口进行写入操作
蜂鸣器
相关代码
#include "stm32f10x.h" // Device header
int main(void){
//1、使用RCC开启GPIO的时钟
//我们要点量PA0口,所以需要选择RCC_APB2Periph_GPIOA
//这里也是可以按位或来初始化多个
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
//2、使用GPIO_Init函数初始化GPIO
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
//若要开启多个,那么就GPIO_Pin_0 | GPIO_Pin_1
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
while(1){
//点亮
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
//关闭
GPIO_SetBits(GPIOA,GPIO_Pin_0);
//点亮LED
GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
//3、使用输出或者输入的函数控制GPIO口
//关闭LED
//延时500ms
GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);
//延迟500ms
//若要使用流水灯.可以直接写0000 0000 0000 0001
//因为是低电平点亮,所以需要加上按位取反的符号
GPIO_Write(GPIOA,~0x0001);
}
}