[活动专区] 【AT-START-F407测评】 串口printf

[复制链接]
702|3
 楼主| 一路向北lm 发表于 2021-1-28 14:27 | 显示全部楼层 |阅读模式
  1. 初始化
  2. void UART_Print_Init(uint32_t bound)
  3. {
  4.   GPIO_InitType GPIO_InitStructure;
  5.   USART_InitType USART_InitStructure;

  6.   /*Enable the UART Clock*/
  7. #if defined (AT32F421xx)
  8.   RCC_AHBPeriphClockCmd(AT32_PRINT_UARTTX_GPIO_RCC | AT32_PRINT_UARTRX_GPIO_RCC, ENABLE);       
  9. #else
  10.   RCC_APB2PeriphClockCmd(AT32_PRINT_UARTTX_GPIO_RCC | AT32_PRINT_UARTRX_GPIO_RCC, ENABLE);       
  11. #endif
  12.   AT32_PRINT_UART_RCC_CLK_FUNC;

  13.   /* Configure the UART1 TX pin */
  14.   GPIO_StructInit(&GPIO_InitStructure);
  15.   GPIO_InitStructure.GPIO_Pins = AT32_PRINT_UARTTX_PIN;
  16.   GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_50MHz;
  17. #if !defined (AT32F421xx)
  18.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  19. #else
  20.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  21.   GPIO_InitStructure.GPIO_OutType = GPIO_OutType_PP;
  22.   GPIO_InitStructure.GPIO_Pull = GPIO_Pull_NOPULL;
  23. #endif
  24.   GPIO_Init(AT32_PRINT_UARTTX_GPIO, &GPIO_InitStructure);

  25.   /* Configure the UART1 RX pin */
  26.   GPIO_InitStructure.GPIO_Pins = AT32_PRINT_UARTRX_PIN;//PA10
  27. #if !defined (AT32F421xx)
  28.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_PD;
  29. #else
  30.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  31.   GPIO_InitStructure.GPIO_Pull = GPIO_Pull_NOPULL;
  32. #endif
  33.   GPIO_Init(AT32_PRINT_UARTRX_GPIO, &GPIO_InitStructure);

  34. #if defined (AT32F421xx)
  35.   GPIO_PinAFConfig(GPIOA, GPIO_PinsSource9, GPIO_AF_1);
  36.   GPIO_PinAFConfig(GPIOA, GPIO_PinsSource10, GPIO_AF_1);
  37. #endif

  38.   /*Configure UART param*/
  39.   USART_StructInit(&USART_InitStructure);
  40.   USART_InitStructure.USART_BaudRate = bound;
  41.   USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  42.   USART_InitStructure.USART_StopBits = USART_StopBits_1;
  43.   USART_InitStructure.USART_Parity = USART_Parity_No;
  44.   USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  45.   USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;       

  46.   USART_Init(AT32_PRINT_UART, &USART_InitStructure);
  47.   USART_INTConfig(AT32_PRINT_UART, USART_INT_RDNE, ENABLE);
  48.   USART_Cmd(AT32_PRINT_UART, ENABLE);   
  49. }


 楼主| 一路向北lm 发表于 2021-1-28 14:27 | 显示全部楼层

  1. /**************** UART printf ****************/
  2. #define AT32_PRINT_UART                USART1
  3. #define USARTx_IRQn                    USART1_IRQn
  4. #define USARTx_IRQ_Handler             USART1_IRQHandler
  5. #define AT32_PRINT_UART_RCC_CLK_FUNC   RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_USART1, ENABLE)

  6. /*Tx*/
  7. #define AT32_PRINT_UARTTX_PIN          GPIO_Pins_9
  8. #define AT32_PRINT_UARTTX_GPIO         GPIOA
  9. #if defined (AT32F421xx)
  10. #define AT32_PRINT_UARTTX_GPIO_RCC     RCC_AHBPERIPH_GPIOA
  11. #else
  12. #define AT32_PRINT_UARTTX_GPIO_RCC     RCC_APB2PERIPH_GPIOA
  13. #endif

  14. /*Rx*/
  15. #define AT32_PRINT_UARTRX_PIN          GPIO_Pins_10
  16. #define AT32_PRINT_UARTRX_GPIO         GPIOA
  17. #if defined (AT32F421xx)
  18. #define AT32_PRINT_UARTRX_GPIO_RCC     RCC_AHBPERIPH_GPIOA
  19. #else
  20. #define AT32_PRINT_UARTRX_GPIO_RCC     RCC_APB2PERIPH_GPIOA
  21. #endif

  22. /**************** End UART printf ****************/


 楼主| 一路向北lm 发表于 2021-1-28 14:29 | 显示全部楼层
硬件连接:
89041601259b4cc959.png
 楼主| 一路向北lm 发表于 2021-1-28 14:29 | 显示全部楼层
效果如下:
37569601259c5373d1.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

293

主题

3837

帖子

81

粉丝
快速回复 在线客服 返回列表 返回顶部