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
{for
}
4、阅读gpio:I/O设置函数
我的理解——所有输入输出管脚模式设置,可以是上下拉、浮空、开漏、模拟、推挽模式,频率特性为2M,10M,50M。也可以向该管脚直接写入数据和读取数据。
{
GPIO_InitStructure.GPIO_Pin
//管脚位置定义,标号可以是NONE、ALL、0至15。
GPIO_InitStructure.GPIO_Speed
//注:以上四行代码为一组,每组GPIO属性必须相同,默认的GPIO参数为:ALL,2MHz,FLATING。如果其中任意一行与前一组相应设置相同,那么那一行可以省略,由此推论如果前面已经将此行参数设定为默认参数(包括使用GPIO_InitTypeDef
……
}
评论