STM32G070RBT6 我将PA14-BOOT0改为USART2RX,
Flasher ARM 的自主模式通过RS232去驱动编程
关于stm32g431串口与FDCAN数据不同同时处理问题
STM32CubeIde生成的工程,使用printf函数没有调用_write函数
STM32F767IGx 使用串口模块正常运行串口不能接收,debug模式正常。
stm32G0B1RCT6在串口快速收发时导致中断服务函数无法进入
在FreeRTOS中串口重定向使用HAL库函数中断出现异常
stm32f407 开启两路(FS和HS) Custom HID,与上位机通信偶尔中断
usart奇偶校验问题
STM32H750使能DCache后用DMA会导致程序异常问题
仿真对比过huart1 前后的寄存器 ,是一样的;初始化函数直接使用MX_USART1_UART_Init
仿真看过IO的配置正常。
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
void PA10_GPIO_MODE_INPUT(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_10);
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pin = GPIO_PIN_10;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
set_reset_uart1_flag;
}
void restart_uart1_io_func(void)
{
HAL_NVIC_DisableIRQ(EXTI15_10_IRQn);
PA10_GPIO_MODE_INPUT();
MX_USART1_UART_Init();
uart1_dma_func();
}
void disable_uart1_io_func(void)
{
HAL_UART_DMAStop(&huart1);
HAL_UART_MspDeInit(&huart1);
PA10_GPIO_MODE_IT_RISING();
HAL_NVIC_SetPriority(EXTI15_10_IRQn, 1, 1);
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
}
用的就是MX生成的代码 MX_USART1_UART_Init
如果用了应该不会有问题的。你现在看串口寄存器和IO的寄存器。串口寄存器的DR是否正常能够显示内容,如果是正常的,看一下huart1的结构里面,是否有产生接收溢出的情况。测试发送是否正常。
UART1的DR 没有变化,