打印
[活动专区]

【AT-START-F407测评】 串口printf

[复制链接]
481|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
初始化
void UART_Print_Init(uint32_t bound)
{
  GPIO_InitType GPIO_InitStructure;
  USART_InitType USART_InitStructure;

  /*Enable the UART Clock*/
#if defined (AT32F421xx)
  RCC_AHBPeriphClockCmd(AT32_PRINT_UARTTX_GPIO_RCC | AT32_PRINT_UARTRX_GPIO_RCC, ENABLE);       
#else
  RCC_APB2PeriphClockCmd(AT32_PRINT_UARTTX_GPIO_RCC | AT32_PRINT_UARTRX_GPIO_RCC, ENABLE);       
#endif
  AT32_PRINT_UART_RCC_CLK_FUNC;

  /* Configure the UART1 TX pin */
  GPIO_StructInit(&GPIO_InitStructure);
  GPIO_InitStructure.GPIO_Pins = AT32_PRINT_UARTTX_PIN;
  GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_50MHz;
#if !defined (AT32F421xx)
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
#else
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_OutType = GPIO_OutType_PP;
  GPIO_InitStructure.GPIO_Pull = GPIO_Pull_NOPULL;
#endif
  GPIO_Init(AT32_PRINT_UARTTX_GPIO, &GPIO_InitStructure);

  /* Configure the UART1 RX pin */
  GPIO_InitStructure.GPIO_Pins = AT32_PRINT_UARTRX_PIN;//PA10
#if !defined (AT32F421xx)
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_PD;
#else
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_Pull = GPIO_Pull_NOPULL;
#endif
  GPIO_Init(AT32_PRINT_UARTRX_GPIO, &GPIO_InitStructure);

#if defined (AT32F421xx)
  GPIO_PinAFConfig(GPIOA, GPIO_PinsSource9, GPIO_AF_1);
  GPIO_PinAFConfig(GPIOA, GPIO_PinsSource10, GPIO_AF_1);
#endif

  /*Configure UART param*/
  USART_StructInit(&USART_InitStructure);
  USART_InitStructure.USART_BaudRate = bound;
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  USART_InitStructure.USART_StopBits = USART_StopBits_1;
  USART_InitStructure.USART_Parity = USART_Parity_No;
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;       

  USART_Init(AT32_PRINT_UART, &USART_InitStructure);
  USART_INTConfig(AT32_PRINT_UART, USART_INT_RDNE, ENABLE);
  USART_Cmd(AT32_PRINT_UART, ENABLE);   
}


使用特权

评论回复
沙发
一路向北lm|  楼主 | 2021-1-28 14:27 | 只看该作者

/**************** UART printf ****************/
#define AT32_PRINT_UART                USART1
#define USARTx_IRQn                    USART1_IRQn
#define USARTx_IRQ_Handler             USART1_IRQHandler
#define AT32_PRINT_UART_RCC_CLK_FUNC   RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_USART1, ENABLE)

/*Tx*/
#define AT32_PRINT_UARTTX_PIN          GPIO_Pins_9
#define AT32_PRINT_UARTTX_GPIO         GPIOA
#if defined (AT32F421xx)
#define AT32_PRINT_UARTTX_GPIO_RCC     RCC_AHBPERIPH_GPIOA
#else
#define AT32_PRINT_UARTTX_GPIO_RCC     RCC_APB2PERIPH_GPIOA
#endif

/*Rx*/
#define AT32_PRINT_UARTRX_PIN          GPIO_Pins_10
#define AT32_PRINT_UARTRX_GPIO         GPIOA
#if defined (AT32F421xx)
#define AT32_PRINT_UARTRX_GPIO_RCC     RCC_AHBPERIPH_GPIOA
#else
#define AT32_PRINT_UARTRX_GPIO_RCC     RCC_APB2PERIPH_GPIOA
#endif

/**************** End UART printf ****************/


使用特权

评论回复
板凳
一路向北lm|  楼主 | 2021-1-28 14:29 | 只看该作者
硬件连接:

使用特权

评论回复
地板
一路向北lm|  楼主 | 2021-1-28 14:29 | 只看该作者
效果如下:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

275

主题

3784

帖子

76

粉丝