测试的第一步就是点亮LED灯,这几乎成了一成不变的步骤。本来准备点灯与开箱合并发帖,可是遇到无法识别ST_LINK的问题,想尽各种办法,反复安装能找到的驱动,包括安装所谓的ST-LINK全家桶,都是外甥打灯笼——照舅。最后在ST32社区搜索到一个帖子,贴主也是同样问题,最后也是升级Keil的版本解决问题。在这之前我也怀疑过可能是版本过低问题,因为在用CUbeMX生成项目框架时,选择IDE时选项为V5.27,且不能修改,而我使用的是V5.25。今天下载安装了V5.30版本再查看,ST-LINK赫然在目,果然就是版本过低的问题。
版本升级到V5.30:
再查看下载选项,ST-LINK赫然在目:
解决了ST-LINK驱动烧录问题后,尝试下载却又遇到新问题:
不过我知道问题的原因,因为我建立第一个测项目时,在选择安全区域时选择了Yes,根据网友的经验应该选择No(见下图),重新建立了一个测试项目就OK了:
点亮LED相对是简单问题,我设置了一个全局变量,通过SysTick中断处理进行自增1,然后在主循环时实现定时处理,代码如下:
while (1)
{
if(ms>499){
ms = 0;
ledn++;
if(ledn>6){
ledn = 1;
ledm++;
if(ledm>2){
ledm = 0;
}
}
switch (ledm){
case 0:
if(ledn%2 == 0)
LED_On(0);
else
LED_Off(0);
break;
case 1:
LED_Off(0);
if(ledn > 0)
LED_On(ledn);
break;
case 2:
LED_On(0);
if(ledn > 0)
LED_Off(ledn);
break;
case 3:
break;
}
}
这是测试时的照片:
这是录制的动画: