W806串口3接收433M接收模块后,串口3数据接收一直是0x00。使用ttl转USB连接电脑测试时,串口工具并没有一直打印0x00,同样的串口3初始化配置,接别的串口数据也没有问题,针对接433M接收模块需要什么别的配置吗?
int main(void)
{
printf("-MCU---StartUp-");
// GPIO_Init4G();
HAL_Init();
SystemClock_Config(CPU_CLK_160M);
UART3_Init(); // 初始串口2
HAL_UART_Receive_IT(&huart3, rxbuff1, IT_LEN); // 使用HAL库的
while (1)
{
if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_6) == GPIO_PIN_RESET){
printf("h");
}else{
printf("f");
}
HAL_Delay(100);
}
return 0;
}
// 串口3 初始化
static void UART3_Init(void)
{
huart3.Instance = UART3;
huart3.Init.BaudRate = 9600;
huart3.Init.WordLength = UART_WORDLENGTH_8B;
huart3.Init.StopBits = UART_STOPBITS_1;
huart3.Init.Parity = UART_PARITY_NONE;
huart3.Init.Mode = UART_MODE_TX | UART_MODE_RX;
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
if (HAL_UART_Init(&huart3) != HAL_OK)
{
Error_Handler();
}
// 清空接收缓冲区
memset(rxbuff1, 0, sizeof(rxbuff1));
// 启动接收中断
HAL_UART_Receive_IT(&huart3, rxbuff1, 24);
}
printf("433接收数据: ");
for (int i = 0; i < RXBUFFERSIZE; i++)
{
printf("0x%02X ", rxbuff1[i]); // 以十六进制打印,清晰查看数据
}
printf("\r\n");
// 清空缓冲区并重启接收中断(关键!)
memset(rxbuff1, 0, sizeof(rxbuff1));

433平时通讯端口为低电平,能将W806MCU 串口为 “空闲低” 模式吗?