这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » APM32E030的串口速率上不到1Mbps

共1条 1/1 1 跳转至

APM32E030的串口速率上不到1Mbps

院士
2025-08-12 20:02:07     打赏

昨天晚上在做APM32E030R的开发时,把APM32E030的串口速率提到1Mbps无法正常通讯了。

大家有出现类似的情况吗?

我的初始化代码来自参考例程,我的在115200bps下是可以的。

void uart2_init(uint32_t band)
{
  GPIO_Config_T gpioConfig;
  USART_Config_T usartConfigStruct;
  /* Enable GPIO clock */
  RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_GPIOA);
  RCM_EnableAPB1PeriphClock(USART2);
  /* Connect PXx to USARTx_Tx */
  GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_2, GPIO_AF_PIN1);

  /* Connect PXx to USARTx_Rx */
  GPIO_ConfigPinAF(GPIOA, GPIO_PIN_SOURCE_3, GPIO_AF_PIN1);
  /* Configure USART Tx as alternate function push-pull */
  gpioConfig.mode = GPIO_MODE_AF;
  gpioConfig.pin = GPIO_PIN_2;
  gpioConfig.speed = GPIO_SPEED_50MHz;
  gpioConfig.outtype = GPIO_OUT_TYPE_PP;
  gpioConfig.pupd = GPIO_PUPD_PU;
  GPIO_Config(GPIOA, &gpioConfig);

    /* Configure USART Rx as input floating */
  gpioConfig.pin = GPIO_PIN_3;
  GPIO_Config(GPIOA, &gpioConfig);
  
  usartConfigStruct.baudRate = band;
  usartConfigStruct.mode     = USART_MODE_TX_RX;
  usartConfigStruct.hardwareFlowCtrl = USART_FLOW_CTRL_NONE;
  usartConfigStruct.parity   = USART_PARITY_NONE;
  usartConfigStruct.stopBits =  USART_STOP_BIT_1;
  usartConfigStruct.wordLength = USART_WORD_LEN_8B;
  USART_Config(USART2, &usartConfigStruct);
  
  /* Enable USART */
  USART_Enable(USART2);
}

void debug_uart_sendbyte(uint8_t dat)
{
  while (USART_ReadStatusFlag(USART2, USART_FLAG_TXBE) == RESET);
  USART_TxData(USART2, dat);
}





关键词: APM32E030     串口     USART    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]