利用串口的输入控制LED灯的亮度,从而达到PC机与MAU交互通信的功能
此功能由三个部分组成,分别是:串口通信、LED灯亮度等级的设定、以及按键按下LED灯熄灭。
首先串口通信过程中要配置串口重定义:
/* USER CODE BEGIN 4 */
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#define GETCHAR_PROTOTYPE int fgetc(FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
GETCHAR_PROTOTYPE
{
uint8_t ch;
while (HAL_UART_GetState(&huart2) == RESET);
HAL_UART_Receive(&huart2, (uint8_t *)&ch, 1, 0xffff);
// while (HAL_UART_GetState(&huart2) == RESET);
// HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
/* USER CODE END 4 */
LED灯亮度等级设置:采用switch-case多分支选择结构来实现,每个case分别对应不同的亮度等级,用户在PC机上输入亮度等级后,通过串口通信,将此信息传输到MAU上,根据相应的亮度等级点亮