[活动专区] 【AT-START-F423测评】 + AT32_Work_Bench配置USART实现收发

[复制链接]
2136|2
 楼主| 袁胜富 发表于 2023-10-21 17:27 | 显示全部楼层 |阅读模式
本帖最后由 袁胜富 于 2023-10-21 18:59 编辑

一、概述                                                                                                                                         
      在日常开发中经常使用USART开发,这篇文章一起来学习AT32F423的USART配置及使用吧。

二、AT32_Work_Bench配置                                                                                                                       

       1.配置外设时钟
          76433653399f7cfed5.png


       2.配置USART

       9748765339a31e17d2.png
       4304365339a4d1afd3.png
       3.时钟配置
         5340065339a87d7374.png       
        4.生成工程配置
         6742865339b80bd2f1.png

三、代码配置

        1.串口中断服务函数代码。
        
  1. /**
  2.   * [url=home.php?mod=space&uid=247401]@brief[/url]  this function handles USART1 handler.
  3.   * @param  none
  4.   * @retval none
  5.   */
  6. void USART1_IRQHandler(void)
  7. {
  8.   /* add user code begin USART1_IRQ 0 */
  9.   if(usart_flag_get(USART1, USART_RDBF_FLAG) != RESET)
  10.         {
  11.                 usart_data_transmit(USART1,usart_data_receive(USART1));
  12.                 usart_flag_clear(USART1,USART_RDBF_FLAG);
  13.         }
  14.   /* add user code end USART1_IRQ 0 */
  15.   /* add user code begin USART1_IRQ 1 */

  16.   /* add user code end USART1_IRQ 1 */
  17. }


        2.main函数代码。
      
  1. /**
  2.   * [url=home.php?mod=space&uid=247401]@brief[/url] main function.
  3.   * @param  none
  4.   * @retval none
  5.   */
  6. int main(void)
  7. {
  8.   /* add user code begin 1 */

  9.   /* add user code end 1 */

  10.   /* add a necessary delay to ensure that Vdd is higher than the operating
  11.      voltage of battery powered domain (2.57V) when the battery powered
  12.      domain is powered on for the first time and being operated. */
  13.   wk_wait_for_power_stable();
  14.   
  15.   /* system clock config. */
  16.   wk_system_clock_config();

  17.   /* config periph clock. */
  18.   wk_periph_clock_config();

  19.   /* nvic config. */
  20.   wk_nvic_config();

  21.   /* init usart1 function. */
  22.   wk_usart1_init();

  23.   /* add user code begin 2 */
  24.         /* enable usart2 and usart3 interrupt */
  25.         
  26.   usart_interrupt_enable(USART1, USART_RDBF_INT, TRUE);
  27.         
  28.   printf("USART Demo\r\n");
  29.   /* add user code end 2 */

  30.   while(1)
  31.   {
  32.     /* add user code begin 3 */

  33.     /* add user code end 3 */
  34.   }
  35. }

四、效果

         884466533ad6cc3ec3.png




  

AT32F423VCT7_USART.zip

7.68 MB, 下载次数: 17

Aeddg 发表于 2023-10-25 16:39 | 显示全部楼层
谢谢分享!
焯! 发表于 2024-7-31 03:41 | 显示全部楼层
真的服啦,我是at32f403Acgu7,照着来配置,结果轮询接收就能收到,中断接收死活进不去中断!折腾了一天了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

163

帖子

2

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