其他分享
首页 > 其他分享> > 【stm32_STD_lib学习】bsp_Sysclock和GPIO中断

【stm32_STD_lib学习】bsp_Sysclock和GPIO中断

作者:互联网

1.bsp_SysClock_Config使用:

(1)在工程内加入野火开发板的"bsp_clkconfig.c"和 "bsp_clkconfig.h"

估计这部分的代码差异很小,只有外部晶振的规格会影响结果,但一般都是8MHZ。

 

(2)注意,由于设置了Flash预存取,文件使用了stm32f10x_flash.c
记得导入这个库文件,
并且在stm32f10x_conf.h中导入stm32f10x_flash.h

(3)然后main函数中就可以使用:

void HSE_SetSysClock(uint32_t pllmul);
void HSI_SetSysClock(uint32_t pllmul);

来配置SysClock频率

 

2.GPIO中断使用:

(1)在官方实例工程中 STM32F10x_StdPeriph_Examples,

找到中断部分 EXTI;

(2)拷贝两个文件到工程code处:stm32f10x_it.h 和 stm32f10x_it.c

(3)裁剪函数,只留下与GPIO有关的中断:

中断服务例程:

void EXTI0_IRQHandler(void);
void EXTI9_5_IRQHandler(void);

把按键所在的GPIO配置到中断:

void EXTI0_Config(void);
void EXTI9_5_Config(void);

(4)在主函数中包含中断头文件:

#include "stm32f10x_it.h"

可以知道,中断函数并不是一定要写在那个文件里,只是约定。

(5)修改官方提供的例程Config:

指南者的按键1和第一个相同,按键2在PC13,要修改

void EXTI9_5_IRQHandler(void); 为 EXTI15_10_IRQHandler(void);

void EXTI9_5_Config(void); 为 void EXTI15_10_Config(void);

并且在Config函数中修改相应的GPIO端口、引脚、中断Line

了解了9-5和15-10 的引脚是分别共用一条中断线的;

(6)修改IRQHandler 处理例程;

在本人的例程中,EXTI0_IRQHandler 只把灯点亮,EXTI15_10_IRQHandler 把灯熄灭;

(7)在主函数的开始处调用两个Config函数,初始化中断。

以上是GPIO的中断

标签:STD,stm32f10x,lib,中断,void,Sysclock,IRQHandler,GPIO,Config
来源: https://www.cnblogs.com/xianyucaicaizi/p/16264435.html