ag32-gpio-lsd
前言
偶然看到了这个AG32的产品,非常震惊,这不正是我寻寻觅觅良久的芯片吗。可以当FPGA,也可以当arm,也可以混合使用。真的是太榜了。
感谢平台给我这次机会,第一次接触这个产品,后续会好好学习,并利用起来。后续在这个平台分享我的整个学习过程,立帖为证哦。
下期预告:数据采集存储系统(2)-KEY控制
首次体验总结
- VS开发编译效率感觉比Keil开发快很多,这个不用等很久;
- 环境构建非常顺利,说明板厂适配很给力,之前用过别的开发板,就环境就把人折腾死了,真的是出师未捷身先死啊;
- IO配置太方便了,真的是可以方便布线啊,管脚随便用,非常喜欢这个功能;
- 这个板子的功能模块还是有点若,适合入门;
- 期待后续产品支持SDIO、USB-HS等功能;
- 下载器太简陋了,要是有个外壳就完美了。光板子容易和主板撞在一起,总担心给主板给弄烧掉了;
- 感谢姚总(销售总监姚俊)、叶总(叶茂常)等大力支持。下面是姚总的名片,大家可以直接联系。
平台搭建
资料下载
资料下载链接如下: 关于资源 – AGM support(技术支持)
这里资料非常齐全,可以根据自己需要进行下载。
我的下载如下:
为了学习这个开发板,我添置了台式机并安装了全新系统。
电脑配置如下:
系统版本:
软件安装
这个完全按照如下教程安装。
千万不要自由发挥,老老实实安装就行。
代码编写验证
学习目标
1-GPIO控制
2-实现点灯逻辑
3-实现流水灯、亮灯控制灯
4-完成逻辑下载、代码下载等等
5-
VE配置
LED控制代码
根据如下原理图进行管脚绑定
这个类似于FPGA中的管脚配置,这里不细说
我的VE文件配置:
SYSCLK 100
HSECLK 8
GPIO4_1 PIN_31 # LED4
GPIO4_2 PIN_32 # LED3
GPIO4_3 PIN_33 # LED2
GPIO4_4 PIN_34 # LED1
我配置了LED1-4的管脚,目的通过GPIO的控制,观察LED的情况。
platformio.ini配置
只改了3处。
第一点是板子选择,也即是选择主控吧。
第二三点是下载接口和协议配置。使用开发板随带是Link就很好用。
Logic device that matches packaging, possible values:
* AGRV2KL100
* AGRV2KL64
* AGRV2KL64H
* AGRV2KL48
* AGRV2KQ32
logic_device = AGRV2KL100
[setup_upload]
protocol = jlink-openocd
debug_tool = cmsis-dap-openocd
upload_protocol = cmsis-dap-openocd
LED控制代码
通过封装好的函数控制IO,实现非常见简单
这里实现了两种效果,详见附件视频。
代码如下:
#include "example.h"
void TestGpio()
{
printf("Testing gpio\n");
int counter = 0;
//uint8_t a=0xfe;
//GPIO_SetLow(EXT_GPIO,0xff);
while (1) {
for(uint8_t i=1;i<5;i++)
{
//a<<=1;
//GPIO_Toggle(EXT_GPIO, (uint8_t)(a<<i));
GPIO_SetHigh(EXT_GPIO,0xff);
GPIO_SetLow(EXT_GPIO,0x01<<i);
UTIL_IdleUs(1000e3);
}
}
}
代码编译与下载
编译成功会有提示:
逻辑下载:
代码下载:
成功后,可以看到板子上亮灯效果。
这个是toggle的效果
详见附件视频。
ag32-gpio-toggle
|