[AT32F405] AT32F405RCT7-7之Work Bench实现点灯

[复制链接]
5700|3
 楼主| shendu0032 发表于 2024-4-24 10:39 | 显示全部楼层 |阅读模式
本帖最后由 shendu0032 于 2024-4-24 10:51 编辑

感谢二姨和雅特力给予这次测评的机会,让我有机会更深入的了解雅特力。此次测评的开发板型号是AT32F405RCT7-7,下面是实物图和芯片介绍。 实物图.jpg 芯片介绍图1.PNG 芯片介绍图3.PNG 芯片介绍图2.PNG
拿到开发板首先需要查找资料,雅特力在共享资料方面非常用心,资料也很齐全,基本上一站式直接提供。在雅特力 (arterytek.com)官网里的产品讯息中的主流型MCU中有AT32F405。打开AT32F405系列芯片的详情页有下载资源介绍,一般选择我们需要的资料,比如:硬件资料(原理图)、软件资料(PACK包,AT Work Bench软件、BSP固件库等)、用户手册类。这些都在下载中心有详细的介绍。下面介绍AT Work Bench软件的使用。
AT Work Bench是雅特力针对MCU的图形化配置工具,以生成初始化C代码和对应的IDE项目,从而减少开发人员的工作量、时间和成本。官方提供Win和Linux系统下的安装包,需要申明的是在Win系统下,软件无需安装直接双击AT32_Work_Bench.exe。
安装路径.png
Linux系统需要使用dpkg命令安装,这些说明和使用文件在下载的软件安装包里都有打包,解压缩之后可以提取对这款软件的使用说明。下面一步一步进行介绍。双击打开软件之后,第一步是选择MCU系列、型号。之后点击新建。当然如果之前有创建好的工程直接打开也可以。打开之后的界面简约大气,方便用户查找进行配置,右边的芯片示意图大小可以通过下面的放大缩小按钮调整。
第一步.png 软件界面.png
首先配置系统的时钟,系统的时钟可以是外部时钟也可以是内部时钟。这款芯片内外时钟的最高频率达216MHz。
设置外部时钟.png 时钟配置.png

之后便是配置原理图中LED2~4这三个LED灯的GPIO引脚。
配置GPIO.png
当这些配置完成之后,可以在代码预览窗口观察生成的代码
代码预览窗口.png
最后是生成代码,同样需要设置项目名称、地址、IDE、固件包。第一次配置需要安装相应的固件包,可以通过固件包管理按钮进入,有两种方式,一种是本地安装,这需要提前下载好固件包,第二种是网络安装,推荐网络安装。一切配置正常之后会弹出生成代码完成窗口。
生成代码.png 安装固件库.png 代码生成成功.png
下一步便是打开工程文件,在main.文件中编写LED电平翻转程序。
  1. /* add user code begin Header */
  2. /**
  3.   **************************************************************************
  4.   * [url=home.php?mod=space&uid=288409]@file[/url]     main.c
  5.   * [url=home.php?mod=space&uid=247401]@brief[/url]    main program
  6.   **************************************************************************
  7.   *                       Copyright notice & Disclaimer
  8.   *
  9.   * The software Board Support Package (BSP) that is made available to
  10.   * download from Artery official website is the copyrighted work of Artery.
  11.   * Artery authorizes customers to use, copy, and distribute the BSP
  12.   * software and its related documentation for the purpose of design and
  13.   * development in conjunction with Artery microcontrollers. Use of the
  14.   * software is governed by this copyright notice and the following disclaimer.
  15.   *
  16.   * THIS SOFTWARE IS PROVIDED ON "AS IS" BASIS WITHOUT WARRANTIES,
  17.   * GUARANTEES OR REPRESENTATIONS OF ANY KIND. ARTERY EXPRESSLY DISCLAIMS,
  18.   * TO THE FULLEST EXTENT PERMITTED BY LAW, ALL EXPRESS, IMPLIED OR
  19.   * STATUTORY OR OTHER WARRANTIES, GUARANTEES OR REPRESENTATIONS,
  20.   * INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
  21.   * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
  22.   *
  23.   **************************************************************************
  24.   */
  25. /* add user code end Header */

  26. /* Includes ------------------------------------------------------------------*/
  27. #include "at32f402_405_wk_config.h"

  28. /* private includes ----------------------------------------------------------*/
  29. /* add user code begin private includes */

  30. /* add user code end private includes */

  31. /* private typedef -----------------------------------------------------------*/
  32. /* add user code begin private typedef */
  33. #define CPU_FREQUENCY_HZ 216000000UL  // 假设CPU主频为216MHz
  34. /* add user code end private typedef */

  35. /* private define ------------------------------------------------------------*/
  36. /* add user code begin private define */

  37. /* add user code end private define */

  38. /* private macro -------------------------------------------------------------*/
  39. /* add user code begin private macro */

  40. /* add user code end private macro */

  41. /* private variables ---------------------------------------------------------*/
  42. /* add user code begin private variables */

  43. /* add user code end private variables */

  44. /* private function prototypes --------------------------------------------*/
  45. /* add user code begin function prototypes */

  46. /* add user code end function prototypes */

  47. /* private user code ---------------------------------------------------------*/
  48. /* add user code begin 0 */

  49. void delay_ms(uint32_t milliseconds) {
  50.     // 计算延时的CPU时钟周期数
  51.     uint32_t cycles = (uint64_t)milliseconds * CPU_FREQUENCY_HZ / 1000;

  52.     // 执行延时循环
  53.     while (cycles--) {
  54.         // 空循环
  55.         __asm__("nop");
  56.     }
  57. }

  58. /* add user code end 0 */

  59. /**
  60.   * [url=home.php?mod=space&uid=247401]@brief[/url] main function.
  61.   * @param  none
  62.   * @retval none
  63.   */
  64. int main(void)
  65. {
  66.   /* add user code begin 1 */

  67.   /* add user code end 1 */

  68.   /* system clock config. */
  69.   wk_system_clock_config();

  70.   /* config periph clock. */
  71.   wk_periph_clock_config();

  72.   /* nvic config. */
  73.   wk_nvic_config();

  74.   /* init gpio function. */
  75.   wk_gpio_config();

  76.   /* add user code begin 2 */

  77.   /* add user code end 2 */

  78.   while(1)
  79.   {
  80.     /* add user code begin 3 */
  81.                 gpio_bits_toggle(GPIOF,LED2_PIN);
  82.                 delay_ms(100);
  83.                 gpio_bits_toggle(GPIOF,LED3_PIN);
  84.                 delay_ms(100);
  85.                 gpio_bits_toggle(GPIOF,LED4_PIN);
  86.                 delay_ms(100);
  87.     /* add user code end 3 */
  88.   }
  89. }
效果就是LED2~4轮流点亮。这是用AT Work Bench软件配置的点灯程序,同时官方也有LED例程,在官网的AT32F405下面的Firmware Library中找到\AT32F402_405_Firmware_Library_V2.0.7\project\at_start_f405\examples\gpio\led_toggle\mdk_v5工程,编译成功后现象也是三个LED灯轮流点亮。需要注意的是使用板载的AT-LINK时,设置上应该选择DAP模式。
下一篇将介绍使用AT Work Bench配置IIC驱动OLED显示屏。
现象.gif

评论

你这是用KELI的开发环境可以介绍一下其开发环境的配置,不过现在雅特力的配置工具也是挺顺手的了,代码风格和STM32很像  发表于 2024-4-24 15:31
呐咯密密 发表于 2024-4-24 11:19 | 显示全部楼层
雅特力的AT Work Bench软件应该是国产工具中最好用的了。
WoodData 发表于 2024-4-24 23:35 | 显示全部楼层
学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:总是缺乏自信,进进退退,走走停停,不停的自我耗损,又不断的为自我耗损而再耗损。

33

主题

261

帖子

7

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