当前位置:   article > 正文

【AT-START-F423测评】 + AT32_Work_Bench配置点亮LED_at32 work bench使用教程

at32 work bench使用教程

一、概述
 



       首先感谢雅特力和21IC共同举办了此次活动。
       雅特力新的MCU AT32F423是一款不错的芯片,资源相当丰富,性价比极高。
       每当拿到新的开发板,首先得要做一灯大师,点亮一颗灯开始。故发表此篇文章,以AT32 Work Bench为外设配置工具。

二、原理

 



     从原理图来看,LED2,LED3,LED4连接MCU的PD13,PD14,PD15,低电平点亮。
       




三、AT32_Work_Bench配置

 



       1.新建工程。
          第一步:找到AT32_Work_Bench;
          第二步:按照下图配置;
          第二步:新建;
         



       2.配置外部时钟。
       



       3.配置LED引脚,按照下图配置就行。
        第一步:将PD13,PD14,PD15设置为输出模式;
        第二步:设置引脚初始电平为高,初始LED不点亮;
        第三步:将PD13,PD14,PD15的标签设置为LED2,LED3,LED4;
         



       4.配置系统外设时钟
         


       5.生成工程。
        第一步:点击生成代码;
        第二步:设置工程名称和存储路径以及工具链/IDE为MDK_V5;
        第三步:设置堆栈大小;
        第四步:设置设置zip固件包路径;        第五步:点击确定。

         



四、代码细节交代

 



       生成的工程没有Delay_ms和Delay_us函数,需要延时则需要加入BSP包里的at32f423_board.c和at32f423_board.h文件;
      用到了printf也就用到了UART,需要在at32f423_conf.h和打开#define USART_MODULE_ENABLED(取消注释)。
      main.c代码:
      

复制
  1. /* Includes ------------------------------------------------------------------*/
  2. #include "at32f423_wk_config.h"
  3. /* private includes ----------------------------------------------------------*/
  4. /* add user code begin private includes */
  5. #include "at32f423_board.h"
  6. #include "stdio.h"
  7. /* add user code end private includes */
  8. /**
  9.   * [url=home.php?mod=space&uid=247401]@brief[/url]  take some delay for waiting power stable, delay is about 60ms with frequency 8MHz.
  10.   * @param  none
  11.   * @retval none
  12.   */
  13. static void wk_wait_for_power_stable(void)
  14. {
  15.   volatile uint32_t delay = 0;
  16.   for(delay = 0; delay < 50000; delay++);
  17. }
  18. /**
  19.   * [url=home.php?mod=space&uid=247401]@brief[/url] main function.
  20.   * @param  none
  21.   * @retval none
  22.   */
  23. int main(void)
  24. {
  25.   /* add user code begin 1 */
  26.         delay_init();
  27.   /* add user code end 1 */
  28.   /* add a necessary delay to ensure that Vdd is higher than the operating
  29.      voltage of battery powered domain (2.57V) when the battery powered
  30.      domain is powered on for the first time and being operated. */
  31.   wk_wait_for_power_stable();
  32.   
  33.   /* system clock config. */
  34.   wk_system_clock_config();
  35.   /* config periph clock. */
  36.   wk_periph_clock_config();
  37.   /* nvic config. */
  38.   wk_nvic_config();
  39.   /* init gpio function. */
  40.   wk_gpio_config();
  41.   /* add user code begin 2 */
  42.         uart_print_init(115200);
  43.         printf("LED例程\r\n");
  44.   /* add user code end 2 */
  45.   while(1)
  46.   {
  47.     /* add user code begin 3 */
  48.                 gpio_bits_toggle(LED2_GPIO_PORT,LED2_PIN);
  49.                 gpio_bits_toggle(LED3_GPIO_PORT,LED3_PIN);
  50.                 gpio_bits_toggle(LED4_GPIO_PORT,LED4_PIN);
  51.           printf("LED_Toggle\r\n");
  52.                 delay_ms(500);
  53.     /* add user code end 3 */
  54.   }
  55. }


五、效果显示

 



       



六、新的与体会

 



       生成的工程没有Delay_ms和Delay_us函数,延时不太方便,建议AT32_Work_Bench生成代码使顺便使用SystemTick生成延时函数。
       代码在附件。。
---------------------
作者:袁胜富
链接:https://bbs.21ic.com/icview-3334806-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/755598
推荐阅读
相关标签
  

闽ICP备14008679号