GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
2.读取输入电平函数
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 读取某个GPIO输入的电平,实际操作IDR寄存器,有返回值
uint8_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx); 读取一组GPIO输入的电平,实际操作IDR寄存,有返回值
3.读取输出电平函数
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 读取某个GPIO输出的电平,实际操作ODR寄存器,有返回值
uint8_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);读取某组GPIO输出的电平,实际操作ODR寄存器,有返回值
4.设置输出电平函数
GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 设置高电平实际操作,BSRR寄存器
GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 设置低电平,实际操作BRR寄存器
Gpio复用功能配置函数
5. 改变指定管脚的映射关系。即配置指定管脚的复用功能。
void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource,uint8_t GPIO_AF)
函数参数说明:GPIOx:gpio的分组/gpio端口;GPIO_PinSource:具体要配置成复用功能的管脚(如GPIO_Pin_0 GPIO_Pin_1这样的宏定义);GPIO_AF:选择该管脚要使用的复用功能。
5.使能时钟函数
RCC_APB2PeriphColckCmd();
6.开启重映射时钟
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);参数1可以是串口,SWJ等很多种类型
7.设置中断优先级分组
void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); 在misc.c文件中
8.设置抢占优先级和响应优先级
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);需要设置通道,抢占优先级,响应优先级,使能通道等
9.串口相关函数
void USART_Init();串口初始化:波特率,数据字长,奇偶校验,硬件流控以收发使能
void USART_Cmd(形参1,形参2);使能串口,形参1是串口位,形参2是ENABLE;
void USART_ITConfig(形参1,形参2,形参3);使能中断,形参1是串口位,形参2是要开启中断的类型,形参3是ENABLE;
void USART_SendData(形参1,形参2);发送数据到串口,DR,形参1是串口位,形参2是要发送是数据
uint16_t USART_ReceiveData(形参1);接收数据,从DR读取接收到的数据,形参1值是串口位
FlagStatus USART_GetFlagStatus();获取状态标志位
void USART_ClearFlag();清除状态标志位
ITStatus USART_GetITStatus(形参1,形参2)获取中断标志位;参数1值是串口位,参数2是要获取的状态
void USART_ClearITPendingBit();清除中断状态标志位
USART1_IRQHandler();USART中断函数,产生中断后进入,函数在核心文件中;
10.外部中断函数
GPIO_EXTILineConfig(参数1,参数2);设置中断线的映射关系,参数1与参数2为要中断的IO
EXTI_Init();初始化外部中断线,触发方式,
EXTI_GetITStatus();判断中断状态是否发生
EXTI_ClearlTPendingBit();清除中断线上的标志位
11.独立看门狗实验
IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);形参后面跟ENABLE,取消写保护
IWDG_SetPrescaler(uint8_t IWDG_Prescaler);设置预分频系数
IWDG_SetReload(uint16_t Reload);设置重装载值
IWDG_Enable();使能看门狗
IWDG_ReloadCounter();喂狗
12.窗口看门狗
RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);使能窗口看门狗
WWDG_SetPrescaler();设置预分频系数
WWDG_SetWindowValue();设置上窗口值
WWDG_EnableIT(); 开启窗口看门狗中断
NVIC_Init();中断初始化
WWDG_Enable();使能看门狗,设置初始计数器值
WWDG_SetCounter();喂狗 设置计数器值
WWDG_IRQHandler();编写中断服务函数
13.通用定时器
TIM_TimeBaseInit(TIM3, &TIM_Timesture); 初始化通用定时器
TIM_GetITStatus(TIM3,TIM_IT_Update); 获取定时器标志位 发生中断后标志位置1 SET
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);清除定时器标志位
TIM_ITConfig(TIM3, TIM_IT_Update,ENABLE);开启定时器中断
TIM_Cmd(TIM3, ENABLE); 使能通用定时器