STM32学前班教程之六:这些代码大家都用得到
1、阅读exti:外部设备中断函数
我的理解——外部设备通过引脚给出的硬件中断,也可以产生软件中断,19个上升、下降或都触发。EXTI0~EXTI15连接到管脚,EXTI线16连接到PVD(VDD监视),EXTI线17连接到RTC(闹钟),EXTI线18连接到USB(唤醒)。
{
EXTI_InitTypeDef
EXTI_InitStructure.EXTI_Line
//设定所需产生外部中断的通道,一共19个。
EXTI_InitStructure.EXTI_Mode
EXTI_InitStructure.EXTI_Trigger
//上升下降沿都触发
EXTI_InitStructure.EXTI_LineCmd
EXTI_Init(&EXTI_InitStructure);
}
2、阅读dma:通过总线而越过CPU读取外设数据
我的理解——通过DMA应用可以加速单片机外设、存储器之间的数据传输,并在传输期间不影响CPU进行其他事情。这对于入门开发基本功能来说没有太大必要,这个内容先行跳过。
3、阅读systic:系统定时器
我的理解——可以输出和利用系统时钟的计数、状态。
基础应用1,精确计时的延时子函数。推荐使用的代码。
static
void
{
}
void
{
SysTick_CounterCmd(SysTick_Counter_Disable);
}
void
//递减变量函数,函数名由“stm32f10x_it.c”中的中断响应函数定义好了。
{
}
注:建议熟练后使用,所涉及知识和设备太多,新手出错的可能性比较大。新手可用简化的延时函数代替:
void
{
}
当延时较长,又不需要精确计时的时候可以使用嵌套循环:
void
{int