1、Cube配置好的串口通讯可以通过HAL_UART_Receive_DMA()HAL_UART_Receive_IT()
该hal库自带函数接收来自传感器发出的具有时间周期的信息,但是该函数无法接收来自上位机或者其他单片机的控制程序。(无法接收的有电脑、串口屏、蓝牙、其他单片机等)
2、如果想实现上位机与单片机之间的通讯需要自行配置串口接收中断函数见文件串口接收配置函数。
程序如下串口通讯判定函数
// if(UsartType.RX_flag) // Receive flag
// {
// UsartType.RX_flag=0; // clean flag
// HAL_UART_Transmit(&huart4, UsartType.RX_pData, UsartType.RX_Size, 0xFFFF);
// }
// switch(UsartType.RX_pData[0])
// {
// //全亮
// case ‘1’:
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
// HAL_GPIO_WritePin(GPIOB, LED0_Pin, GPIO_PIN_RESET);//绿开
// HAL_GPIO_WritePin(GPIOB,LED1_Pin|LED2_Pin,GPIO_PIN_SET);
// break;
// case ‘2’:
// HAL_GPIO_WritePin(GPIOB,LED1_Pin,GPIO_PIN_RESET);//蓝开
// HAL_GPIO_WritePin(GPIOB,LED0_Pin|LED2_Pin,GPIO_PIN_SET);
// break;
// case ‘3’:
// HAL_GPIO_WritePin(GPIOB,LED2_Pin,GPIO_PIN_RESET);//红开
// HAL_GPIO_WritePin(GPIOB,LED0_Pin|LED1_Pin,GPIO_PIN_SET);
// break;
// case ‘4’:
// //全关
// HAL_GPIO_WritePin(GPIOB,LED0_Pin|LED1_Pin|LED2_Pin,GPIO_PIN_SET);
// break;
// }
// UsartType.RX_pData[RX_LEN] = ‘\0’;
// HAL_Delay(1000);