文章目录
- 运行环境:
- 1.1 串口接收代码分析
- 1)开启接收中断和空闲中断
- 2)接收存储变量声明和定义
- 3)中断处理函数
- 2.1实验效果
运行环境:
ubuntu18.04.melodic
宏基暗影骑士笔记本
stm32f427IIH6
stlink
9-24v可调电源
usb转串口
杜邦线转4pin
1.1 串口接收代码分析
详细见:串口接收
1)开启接收中断和空闲中断
接收中断:当每接收完一个完整字节,就触发一次接收中断
空闲中断:接收完一个完整字节 又 过一个字节时间没有接收任何数据
2)接收存储变量声明和定义
# 一个是接收100个字节,一个是计算接收几个位
extern uint8_t UARTBUF[100];
extern uint8_t len;
变量定义:
3)中断处理函数
判断是接收中断还是空闲中断, 再执行相应操作。
void USART6_IRQHandler(void)
{
/* USER CODE BEGIN USART6_IRQn 0 */
static uint8_t q = 0;
/* USER CODE END USART6_IRQn 0 */
HAL_UART_IRQHandler(&huart6);
/* USER CODE BEGIN USART6_IRQn 1 */
if (huart6.Instance->SR&UART_FLAG_RXNE){
UARTBUF[q]=huart6.Instance->DR;
q++;
}
else if (huart6.Instance->SR&UART_FLAG_IDLE){
huart6.Instance->DR;
len = q;
q = 0;
}
2.1实验效果
输入12345,然后回车进行发送
断点调试以及变量监视