STM32F405xx/07xx 和 STM32F415xx/17xx 具有 82 个可屏蔽中断通道,系统 异常10 个,除了个别异常的优先级被定死外,其它异常的优先级都是可编程的中断和事件的区别
产生中断CPU需要去响应,产生事件CPU不一定要去做些什么动作去响应它, 一般情况下用的最多的是中断,事件的话CPU是自己内部去处理一些错误的动作外部中断配置流程
开启SYSCFG外设对应的时钟
选择对应的外部中断线,例如将按键PE2(KEY2)接入到中断线路中来
EXTI中断配置
EXTI_InitStructure.EXTI_Line = EXTI_Line2; //选择引脚 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //选择中断模式 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿触发 EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure);NVIC配置
NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x2; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x2; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
基本定时器
STM32F4 定时器分类(共14个): 高级定时器:TIME1 、TIME8 通用定时器: TIME2 ~ TIME5,TIM9 ~ TIM14 基本定时器: TIME6 、 TIME7
基本定时器(TIM6 和 TIM7)主要两个功能,
第一就是基本定时功能,生成时基
第二就是 专门 用于驱动数模转换器(DAC) 基本定时器(TIM6 和 TIM7)的特性包括:
● 16 位自动重载递增计数器
● 16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介于 1 和 65536 之间
● 用于触发 DAC 的同步电路
● 发生如下更新事件时会生成中断/DMA 请求:计数器上溢
基本定时器配置流程
开启基本定时器时钟
配置时基单元
//设置定时器周期和预分频值,目的计数1s TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式 TIM_TimeBaseStructure.TIM_Period=50000-1; //计数值 TIM_TimeBaseStructure.TIM_Prescaler=8400-1; //预分频使能定时器的更新中断
配置NVIC
开启定时器
TIM_Cmd(TIM6, ENABLE)
USART:是一种通用同步异步收发器,是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。
总线信号: TX, RX, CK
简单的板内通讯,或者常见的设备调试场景,使用简单的LVTTL/TTL电平即可在两个设备间进行UART协议通讯。
在目前工业控制,流行使用的串口通讯中,一般只使用RXD、TXD 以及GND 三条信号线,直 接传输数据信号,这种方式就是UART,裁剪掉了同步信号线,只能进行异步通讯。我们平时用的串口通信基本都是UART。
UART:是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收
总线信号: TX, RX, GND
基于TTL的UART通讯 基于TTL的UART通讯,是USART协议应用最简单的使用场景。即直接把数字I/O输出的高低电平 作为实际的物理信号进行传输。在物理连接上,只需要设备共地,通过一根信号线即可完成单向的设备通讯。如果需要双向全双工,使用两根信号线即可UART的通信线路简单,只需要三根线即可实现两个设备之间的传输,但是传输速率是最慢的。当然两个设备使用UART串口通讯时,必须先约定好传输速率和一些数据位。
USART和UART的区别
第一个区别是可以为串行数据提供时钟的方式。 UART在内部向微控制器生成其数据时钟,并通过使用起始位转换将该时钟与数据流同步。没有与数据相关的输入时钟信号,因此为了正确接收数据流,接收器需要提前知道波特率应该是什么。USART可以设置为以同步模式运行。在此模式下,发送外设将生成一个时钟,接收外设可以从数据流中恢复,而无需提前知道波特率。或者,链路将使用完全独立的线路来承载时钟信号。使用外部时钟可使USART的数据速率远高于标准UART的数据速率,最高可达4 Mbps。
第二个主要区别是外设可以支持的协议数量。 UART很简单,只提供其基本格式的一些选项,例如停止位数和偶数或奇数奇偶校验。 USART更复杂,可以以与许多不同标准协议相对应的形式生成数据,例如IrDA,LIN,智能卡,RS-485接口的驱动程序启用和Modbus等。 USART也具有与UART相同的异步功能