打印
[AT32M412]

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

[复制链接]
162|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#申请原创# @21ic小管家
上一帖把项目给做完了
【AT-START-M412测评】+智慧食堂之“自动吐盘机”,但是在官网看到雅特力有关于可视化配置工具的软件和操作说明,这我顿时来了兴趣,因为我知道,现在都趋向于可视化配置工程,这种配置可以降低工程移植时产生的误操作,并且可以快速的看到该工程都用到了那些IO管脚,哪些管脚可以用作什么功能,时钟配置情况等等,这样对电路设计或者对开发来说可以说是带来极大的便利。那么我们就来看看这个可视化配置工具怎么使用吧。
首先去官网下载AT32_Work_Bench_Win-x86_64_V1.1.09,下载之后不需要安装直接解压后打开AT32_Work_Bench.exe即可。打开之后需要选择新建工程并且需要选择对应的芯片,这里我使用的是M416,所以直接选择M416即可。打开后就可以看到一些外设和IO的使用情况。(这里是我早期创建的工程,因此多了外部时钟,串口和2个IO的配置)

这里拿配置时钟,串口和IO来举例。首先配置时钟,如果想使用外部时钟,需要选择CRM,同时在高速外部晶振部分选择时钟振荡器。

配置好之后,来到时钟配置界面,这里针对实际使用的外部时钟来输入具体的时钟频率。

在配置好时钟部分之后,我们可以来配置串口。串口和配置时钟类似,直接选择USART,USART1,同时修改GPIO设置(选择自己要用的GPIO当做串口1,这里我选择的是PA9和PA10,主要是这两个管脚在开发板上直接与ATlink相连接,比较方便)。设置好波特率等基本的串口参数,这里需要注意一下串口的中断,如果不需要接收的话是不需要配置串口中断的,如果需要接收则需要勾选上,并且要注意中断优先级。由于业务简单,所以我就不开启DMA了,如果有需要用到DMA的朋友可以参考官方例程进行配置和使用。

随后,我需要2个指示灯,所以就配置了一下GPIO,这里比较简单,选择芯片上想要设置的管脚,看开发板原理图可以得知LED2和LED3在PF6和PF7上,所以在可视化配置工具上直接选择对应的IO,配置为GPIO_Output即可。配置到这里,就可以实现生成代码了。

在生成代码之前需要配置一下固件包管理,这里首先需要配置一下固件包实际的电脑中的存储位置,配置好之后网上下载好对应的固件包,将zip格式的固件包放在你之前设置好的固件包安装位置即可。软件会自动扫描。这样固件包就安装好了。

最后就是生成代码,这里比较简单,用哪个编译链就选择什么,我这里选择的是MDK5。

最后就可以得到一个自己配置好的工程了,打开可以看看缺不缺文件,随后可以加一些自己的业务逻辑。这里我简单的使用了一下串口和GPIO的翻转功能。
int main(void)
{
  /* add user code begin 1 */

  /* add user code end 1 */

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

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

  /* nvic config. */
  wk_nvic_config();

  /* timebase config. */
  wk_timebase_init();

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

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

  /* add user code begin 2 */

  /* add user code end 2 */

  while(1)
  {
    /* add user code begin 3 */
                if(Usart_rx_flag == 0x20)
                {
                        Usart_rx_flag = 0;
                        if(usart1_rx_buffer[3] == 0x01)
                        {
                                usart_data_transmit(USART1, 0x02);
                        }
                        else
                                usart_data_transmit(USART1, 0x03);
                        data_count = 0;
                }
                gpio_bits_toggle(GPIOF, GPIO_PINS_6|GPIO_PINS_7);
                wk_delay_ms(500);
    /* add user code end 3 */
  }
}

效果如下:


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

763

主题

3261

帖子

10

粉丝