(2)如果接收到0x55那么返回0x01,如果接收到的数据不是0x55就返回0x00。 这里用到中断,写一个中断回调函数如下:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if (0x55 == RxByte) { TxByte = 0x01; HAL_GPIO_WritePin(GPIOG, GPIO_PIN_4, GPIO_PIN_SET); HAL_UART_Transmit(&huart2, (uint8_t *)&TxByte, 1, 0xFF); } else { TxByte = 0x02; HAL_GPIO_WritePin(GPIOG, GPIO_PIN_4, GPIO_PIN_SET); HAL_UART_Transmit(&huart2, (uint8_t *)&TxByte, 1, 0xFF); } HAL_GPIO_WritePin(GPIOG, GPIO_PIN_4, GPIO_PIN_RESET); //重新使能串口接收中断 HAL_UART_Receive_IT(&huart2, (uint8_t *)&RxByte, 1); }
|