【Silicon Labs 开发套件评测】+第一个工程&GPIO控制LED
[复制链接]
从一个简单的应用开始,建立GPIO控制工程,熟悉SSv5建立工程流程、仿真、程序下载等。使用开发板上的用户led灯和用户按键来实现。
打开SSv5,我连接了开发套件,所以打开开发板自动连接上了。
左上角是接入的开发板,右边部分就可以开始建立工程了。
如果连接了开发板,在connected Devices下会显示开发板名称。点击start就可以开始。
如果没有开发板,选择all Products,在下拉列表中找到使用的开发板或者芯片,点击start即可。
我这里连接PG22 dev kit Board,所以选择连接设备,然后点击start之后进入下图界面。
在overview下面显示了开版套件的一些基本参数。点击Create New Project开始创建一个新的工程。
也可以在Example project&demos下找到对应的例程来创建项目。
我这里使用Create New Project来创建空的C项目。
选择Empty C Project,点击next
Project name:定义项目名称;
Location:选择项目保存路径;
选择Link sdk and copy project sources。
点击FINISH
工程原形就建立好了。
整个文件结构SSv5已经给我们建立好了,看起来并不像一个空的工程,文件中已经有了app.c/h,main.c等源文件。还以几个特殊的文件是干什么的呢?
Control.pintool:从后缀来看像是pin的定义工具我们双击他进入
果然是引脚定义工具。目前很多芯片厂商都设置了这样的人机界面对外设的可视化配置,有的厂商做得很细,每个外设及时钟都可以可视化进行配置,可以画出模块化原理图来。大大的降低了对芯片的使用难度,简单的模块都可以不详细的研读数据手册就可以实现了。GPIO复用直接进行配置。我先来定义LED的引脚。
LED使用PA04引脚,作为输出引脚,输出高电平时led亮起来,低电平时熄灭。
在PA04的Function下选择GPIO mode;
Control.slcp:双击打开,主要是对资源进行配置
选择SOFTWARE COMPONENTS
开始对led资源进行配置,platform->Driver->LED->Generic LED API
点击install
就可以看到右边关于LED API的使用了。
然后点击Simple LED
点击install
命名为led0,点击done
点击configure
配置好之后,开始实现软件,从main函数开始
系统已经给你框架搭建好,系统初始化硬件实现,我们只需要实现led初始化及应用就行。我们先编译一下
编译没有问题,我们接着往下,首先初始化led。
使用API接口进行对led操作
我这里还启动一个定时器服务器,控制led周期性闪烁。
启动Sleep Timer,点击install。
这里也有api函数及demo参考。
现在我们开始在app_init中添加LED的初始化事务。
void app_init(void)
{
blink_init();
}
这里就是调用api函数实现
周期到之后执行on_timeout。
置位toggle_timeout标志。
然后在while循环中的app_process_action接口下添加led的控制,通过查询的方式实现。
void app_process_action(void)
{
blink_process_action();
}
然后编译
没有错误,可以下载目标板卡上运行了。
下载在目标板上,可以正常运行,led灯开始闪烁了。
|