赞
踩
串口1用来打印信息,串口2用来调试ESP8266
使能串口1,波特率设为115200
使能中断
串口2也是这样配置的,这里就不在展示了,只需要使能串口2,设置波特率115200,使能串口2的中断即可。
选择CMSIS版本2,点击Add,设置事件名称、事件函数名、占用大小等等。
设置参数代表意思如下所示:
- void USART2_IRQHandler(void)
- {
- /* USER CODE BEGIN USART2_IRQn 0 */
- unsigned int timeout=0;
- unsigned int maxDelay=0x1FFFF;
-
- /* USER CODE END USART2_IRQn 0 */
- HAL_UART_IRQHandler(&huart2);
- /* USER CODE BEGIN USART2_IRQn 1 */
- while (HAL_UART_GetState(&huart2)!=HAL_UART_STATE_READY)//等待就绪
- {
- timeout++;//超时处理
- if(timeout>maxDelay) break;
- }
- timeout=0;
- while(HAL_UART_Receive_IT(&huart2,&receivedByte2, 1)!=HAL_OK)
- {
- timeout++; //超时处理
- if(timeout>maxDelay) break;
- }
-
- if(esp8266_cnt >= sizeof(esp8266_buf)) esp8266_cnt = 0; //防止串口被刷爆
- esp8266_buf[esp8266_cnt++] = receivedByte2;
-
- /* USER CODE END USART2_IRQn 1 */
- }
然后找到生成的事件函数,添加事件进去,我这里在事件test01里面添加了打印的一个事件,在另外一个事件里面添加了数据上报的一个事件,注意这两个事件里面都必须包含osDelay延时函数,否则将无法进行事件堵塞,这样就不能进行任务间的调度切换。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。