基础实验 – 基于省赛资源套装
ex9 EXTI外部中断实验
实验目的:掌握定时器USART发送字符串的方法。
实验内容:USART2发送字符串“GXCT IOT USART TEST TX”。
实验现象:PC端打开串口助手,连接USART2的TX和RX引脚。串口助手接收到“GXCT IOT USART TEST TX”。
计算机通信
计算机通信的概念
将计算机技术和通信技术相结合,完成计算机与外部设备或计算机与计算机之间的信息交换。按照数据传输方式的不同,可以分为串行通信和并行通信两类。
串行通信
数据逐位传输,传输线少,长距离传输时成本低,但数据的传输控制较复杂。按照实现数据同步的方式,可以分为同步串行和异步串行两种。
并行通信
多位数据同时传输,传输控制简单,传输速度快,但是在长距离
传输时硬件成本较高。
异步串行通信的字符格式
波特率
每秒钟传送二进制数码的位数,以bit/s (bps) 为单位。
●常用的波特率有: 9600、 19200、 38400、 57600和11 5200;
●波特率为115200,表示每秒传输1 1 5200位,且每- -位数据在数据线上持续时间为Tbit = 1/115200≈8.68us。
串口初始化过程
STM32CubeMX配置
- 目标选择
- 引脚分配
- 外设配置
- 时钟配置
- 工程配置
1.目标选择
新建工程
选择MCU 输入STM32L071KB
2.引脚分配
PC15引脚:GPIO_Output(输出模式)
3.外设配置
PC15引脚配置
GPIO输出电平:高
GPIO模式:推挽输出
GPIO上拉电阻/下拉电阻:不上拉电阻/下拉电阻
输出速度:低
USART2引脚配置
4.时钟配置
时钟源:旁路时钟源
时钟频率:32MHz
5.工程配置
keil5程序编写
1.选择STM32L071KBUx芯片
2.添加代码
在USER CODE BEGIN PM和USER CODE END PM之间添加以下代码
uint8_t RecBuf[10] = "GXCT IOT USART TEST TX"; //定义发送缓冲区
uint8_t TecBuf[10] //定义接收缓冲区
在**USER CODE BEGIN 3**和**USER CODE END 3**之间添加串口发送代码
在USER CODE BEGIN 3和USER CODE END 3之间添加串口发送代码
HAL_UART_Transmit(&huart2,(uint8_t *)TecBuf,22,100); //串口发送
在USER CODE BEGIN 3和USER CODE END 3之间添加串口接收代码
HAL_UART_Transmit(&huart2,(uint8_t *)TecBuf,22,100); //串口发送
if( HAL_UART_Receive(&huart2,(uint8_t *)RecBuf,12,100) == HAL_OK )
{
if( RecBuf == "Turn Off LD5" ) //判断接收到的字符串是否是“Turn Off LD5
{ //将LD5关闭
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);
}
}
HAL_Delay(1000);
当USER按键按下后,触发外部中断,进入中断服务函数,中断服务函数调用该Callback函数。函数中将LD5的状态反转。
3.HAL库函数解析
外部中断通用处理函数 : void HAL GPIO_ EXTI IRQHandler(uint16_ t GPIO Pin)
功能描述 | 作为所有外部中断发生后的通用处理函数,所有外部中断服务程序均调用该函数完成中断处理,函数内部调用外部中断回调函数HAL GPIO EXTI Callback完成实际的 |
入口参数 | GPIO Pin:连接到对应外部中断线的引脚,范围是GPIO PIN 0 ~ GPIO PIN 15 |
外部中断回调函数 : void HAL GPIO_ EXTI Callback(uint16_ t GPIO_ Pin)
功能描述 | 外部中断回调函数,用于处理具体的中断任务,该函数由外部中断通用处理函数HAL GPIO EXTI IRQHandler调用,完成所有外部中断的任务处理 |
入口参数 | GPIO Pin:连接到对应外部中断线的引脚,范围是GPIO_PIN_0 ~ GPIO_PIN_15 |
GPIO输入读取函数 : HAL_GPIO_ReadPin(GPIOx, GPIO_Pin)
入口参数 | 描述 |
---|---|
GPIOx | GPIO端口,GPIOA~GPIOC |
GPIO_Pin | 连接到对应外部中断线的引脚,范围是GPIO_PIN_0 ~ GPIO_PIN_15 |