MX做了工程 前面的代码现在优化
首先做一个抽象的基础gkbaseusert模块
此后在做一个应用APP
开始调用:
第一步:
main
#include "gkbaseusart.h"
GK_usart_init(&GKU1,1);
完成绑定关系
注意:void GK_UsartReceive_IDLE(GK_USARTIDLE_TYPE *myuart)
这个函数不用管理 就行IT中的函数一样的
第二部:
找一个任务来做服务
for(;;)
{
if(GKU1.rx_flag)
SMUsart1_Server(&GKU1);
osDelay(1);
}
注意:标记位已经拉起了 有责任和义务在服务以后销毁它 我们在SMUsart1_Server函数内部清理了!!
第三部:非常重要 IT中需要放置服务函数
void USART1_IRQHandler(void)
{
// UsartReceive_IDLE(&huart1);
GK_UsartReceive_IDLE(&GKU1);
HAL_UART_IRQHandler(&huart1);
}
注意:标记位已经拉起了 有责任和义务在服务以后销毁它 我们在SMUsart1_Server函数内部清理了!!
可以了 随手写bug
memset(Usart,0,sizeof(GK_USARTIDLE_TYPE));切忌这个函数不行!!!它摧毁了绑定关系
git@gitee.com:GKoSon/stm32usart_model.git