STM32HAL库 串口复用配置问题
本帖最后由 西奥伟 于 2018-12-1 17:58 编辑今天遇到一个很棘手的问题,我使用的芯片型为STM32F030K6,如果我使用CubeMX直接默认生成串口1中断的通信代码,能够正常实现数据的收发。(注:正常情况下PA2和PA3分别是串口1的发送和接收引脚,用示波器检测有信号出来),现在由于项目中的实际需求,需要将PA9和PA10复用为串口1的发送和接收引脚,单步调试能够看到数据的发送,能够进入中断,但是,用示波器测试PA9引脚,一直没有数据发送出来,接收也是没有信号。(在此请各位论坛坛友一起讨论下可能是哪些问题造成的)
楼主好像应该先配置默认的USERT1,再修改PA9、PA10为映像,这样在STM32F0xx_hal_msp.C文件里才有对PA9、PA10的初始化:
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{
GPIO_InitTypeDef GPIO_InitStruct;
if(huart->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspInit 0 */
/* USER CODE END USART1_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_USART1_CLK_ENABLE();
/**USART1 GPIO Configuration
PA9 ------> USART1_TX
PA10 ------> USART1_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF1_USART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USER CODE BEGIN USART1_MspInit 1 */
/* USER CODE END USART1_MspInit 1 */
}
}
wenyangzeng 发表于 2018-11-29 17:34
楼主好像应该先配置默认的USERT1,再修改PA9、PA10为映像,这样在STM32F0xx_hal_msp.C文件里才有对PA9、PA10 ...
我做了配置的,刚才没有发出来那张图片
页:
[1]