【CW32L052测评】之GPIO&定时器测评
[复制链接]
因为开发板的例程只有一个,但我想的是先试用一下模块的例程,所以先上芯源的官网下载软件例程包:
解压后就能发现里面有所有外设模块相关的例程了。
GPIO例程试用:
打开GPIO例程后,赶紧例程写的还是很不错的,光光GPIO一个模块,就已经写了8个例程,可以说是很用心了。
但是例程上使用的IO口,从选择上好像跟startkit开发板上的按键跟LED灯无关,所以我想在startkit上面试用的话,为了让试用效果更明显,需要在官网例程的基础上,自己再编辑一下。
比较简单的一种测量GPIO的方法,就是测试输入输出,所以我打算基于开发板上的按键跟LED灯,来测试这个输入输出功能,通过按键来控制LED灯的亮灭。
改好程序后,编译正常,但是程序却烧录不进去,报错如下:
然后用回官网的例程,发现也是一样的错误。推测可能是Keil相关的配置项有差异导致。
对比后发现内存地址存在差异,如下图:
需要把rom跟ram的地址,都更正后,才能烧写进去。
然后我开始怀疑是不是我芯片选择选错了,然后看起来芯片手册,芯片手册中系统分配地址如下:
可以看到,无论是ram还是rom;模块例程中的长度都是错误值,我查了其他GPIO例程,发现配置项也是错的。这个就有点过分了。说实话,新手要是被这么一搞,可能直接就蒙了。所以建议官方尽快修正例程中的错误,释放例程前,一定要再板子上跑过才行,验证过再释放给客户。
回到我们改好的GPIO测试程序,我们通过按键控制,按下KEY1则LED1灭,松开KEY1则LED1亮;按下KEY2则LED2灭,松开KEY2则LED2亮。实验结果如预期,GPIO测试成功。
附上代码如下:
GPIO_test.rar
(867.79 KB, 下载次数: 0)
TIMER定时器试用:
在官方例程中,我们可以看到TIM模块有三个类型的,分别是BTIM,GTIM跟ATIM,我查了一下芯片手册,发现BTIM是最基本的定时器,那我们就先从这个基本的定时器开始入手进行测评。
在例程BTIM的Basetimer工程下,做了一些修改,将翻转的IO口换成LED1灯,改动点分别为GPIO的初始化跟BTIM的中断处理函数,如下:
也就是根据定时器的频率,LED1灯会进行闪烁。
然后需要特别注意的是,需要再更改debug设置里面的rom长度跟ram长度,如下:
到此,就能编译,并下载到startkit班子上。
下载后发现LED1灯没有亮。
仔细查了一下,原来是GPIOA的时钟没有使能,改成如下:
再编译,导入,就能看到LED1灯闪烁了,至此,BTIM的评测完成。
附上代码如下:
BTIM_test.rar
(890.72 KB, 下载次数: 0)
|