[AT32M412] 【AT-START-M412测评】+使用可视化配置工具配置工程

[复制链接]
 楼主| 发表于 2025-6-21 21:15 | 显示全部楼层 |阅读模式
#申请原创# @21ic小管家
上一帖把项目给做完了
【AT-START-M412测评】+智慧食堂之“自动吐盘机”,但是在官网看到雅特力有关于可视化配置工具的软件和操作说明,这我顿时来了兴趣,因为我知道,现在都趋向于可视化配置工程,这种配置可以降低工程移植时产生的误操作,并且可以快速的看到该工程都用到了那些IO管脚,哪些管脚可以用作什么功能,时钟配置情况等等,这样对电路设计或者对开发来说可以说是带来极大的便利。那么我们就来看看这个可视化配置工具怎么使用吧。
首先去官网下载AT32_Work_Bench_Win-x86_64_V1.1.09,下载之后不需要安装直接解压后打开AT32_Work_Bench.exe即可。打开之后需要选择新建工程并且需要选择对应的芯片,这里我使用的是M416,所以直接选择M416即可。打开后就可以看到一些外设和IO的使用情况。(这里是我早期创建的工程,因此多了外部时钟,串口和2个IO的配置)
0615f69937420c2bb24e94a1b32945ec
这里拿配置时钟,串口和IO来举例。首先配置时钟,如果想使用外部时钟,需要选择CRM,同时在高速外部晶振部分选择时钟振荡器。
c993937bf49c4abda74ddb97b32d90b7
配置好之后,来到时钟配置界面,这里针对实际使用的外部时钟来输入具体的时钟频率。
a2c40bf768a06ceeecbe98c6aea2d1c5
在配置好时钟部分之后,我们可以来配置串口。串口和配置时钟类似,直接选择USART,USART1,同时修改GPIO设置(选择自己要用的GPIO当做串口1,这里我选择的是PA9和PA10,主要是这两个管脚在开发板上直接与ATlink相连接,比较方便)。设置好波特率等基本的串口参数,这里需要注意一下串口的中断,如果不需要接收的话是不需要配置串口中断的,如果需要接收则需要勾选上,并且要注意中断优先级。由于业务简单,所以我就不开启DMA了,如果有需要用到DMA的朋友可以参考官方例程进行配置和使用。
03939dad746cd619b270c9751fb8ffb8
随后,我需要2个指示灯,所以就配置了一下GPIO,这里比较简单,选择芯片上想要设置的管脚,看开发板原理图可以得知LED2和LED3在PF6和PF7上,所以在可视化配置工具上直接选择对应的IO,配置为GPIO_Output即可。配置到这里,就可以实现生成代码了。
8c2e962112ef93c89feadfb32d153378
在生成代码之前需要配置一下固件包管理,这里首先需要配置一下固件包实际的电脑中的存储位置,配置好之后网上下载好对应的固件包,将zip格式的固件包放在你之前设置好的固件包安装位置即可。软件会自动扫描。这样固件包就安装好了。
aee29f4ac256a5456f29fb43cd0db626
最后就是生成代码,这里比较简单,用哪个编译链就选择什么,我这里选择的是MDK5。
0b1273750ab7c41db272af5fed2facfb
最后就可以得到一个自己配置好的工程了,打开可以看看缺不缺文件,随后可以加一些自己的业务逻辑。这里我简单的使用了一下串口和GPIO的翻转功能。
  1. int main(void)
  2. {
  3.   /* add user code begin 1 */

  4.   /* add user code end 1 */

  5.   /* system clock config. */
  6.   wk_system_clock_config();

  7.   /* config periph clock. */
  8.   wk_periph_clock_config();

  9.   /* nvic config. */
  10.   wk_nvic_config();

  11.   /* timebase config. */
  12.   wk_timebase_init();

  13.   /* init gpio function. */
  14.   wk_gpio_config();

  15.   /* init usart1 function. */
  16.   wk_usart1_init();

  17.   /* add user code begin 2 */

  18.   /* add user code end 2 */

  19.   while(1)
  20.   {
  21.     /* add user code begin 3 */
  22.                 if(Usart_rx_flag == 0x20)
  23.                 {
  24.                         Usart_rx_flag = 0;
  25.                         if(usart1_rx_buffer[3] == 0x01)
  26.                         {
  27.                                 usart_data_transmit(USART1, 0x02);
  28.                         }
  29.                         else
  30.                                 usart_data_transmit(USART1, 0x03);
  31.                         data_count = 0;
  32.                 }
  33.                 gpio_bits_toggle(GPIOF, GPIO_PINS_6|GPIO_PINS_7);
  34.                 wk_delay_ms(500);
  35.     /* add user code end 3 */
  36.   }
  37. }

效果如下:
af3cc10b5dfad2550b330e741246fa9a

您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:擅长电路设计、物联网产品开发、射频产品开发,喜欢打篮球,技术交流,欢迎各位来聊~

783

主题

3320

帖子

10

粉丝
快速回复 返回顶部 返回列表