学习笔记
本文引用地址:https://www.eepw.com.cn/article/201611/322884.htmforSTM32F103C8
redesignedbyzhangbin
2012-10-30
versions:V-0.1
AllRightsReserved
main.c如下,注释的比较详细,把下面的例子即说明都看明白基本上就可以用了:
//抢占级别高的会打断其他中断优先执行,而响应级别高的会在其他中断执行完优先执行。
//EXTI:外部中断/事件控制器
//EXTI控制器可以产生高达19个软件事件/中断请求
//将19根线配置为中断源,将19根线配置为事件源,将19根线配置为软件中断/事件线,详见《STM32F103xxx使用手册》
//P135
//在这个文件中主要是进行各种初始化配置,包括GPIO配置、EXTI配置、系统时钟配置等
//中断服务程序则在stm32f10x_it.c文件中,该文件提供所有异常处理程序和外围中断服务程序的模板,详见该文件
#include"stm32f10x_lib.h"
EXTI_InitTypeDefEXTI_InitStructure;//定义外部中断初始化结构体变量内部含有4个成员详见EXTI_InitTypeDef的定义
ErrorStatusHSEStartUpStatus;//定义错误状态变量,是枚举类型
voidRCC_Configuration(void);
voidGPIO_Configuration(void);
voidNVIC_Configuration(void);
intmain(void)
{
#ifdefDEBUG
debug();
#endif
RCC_Configuration();//系统时钟配置
NVIC_Configuration();//NVIC配置
GPIO_Configuration();//配置GPIO
//STM32的外部中断不是固定的,是可以映射的。如EXTI6既可以映射到PB6也可以映射到PA6,详见外部中断/事件与GPIO的映射关系
//将IO端口注册至中断线(将IO口映射到中断线N)
//
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource6);//选择GPIO管脚用作外部中断线路
//第一个参数选择用作外部中断线源的GPIO端口第二个参数是待设置的外部中断线路,可以是GPIO_PinSourcex(x可以0~15)
评论