14回答

1收藏

[评测分享] 【Silicon Labs EFR32xG22】基本输入输出使用和裸机工程建立

#板卡评测 #板卡评测 14028 人阅读 | 14 人回复 | 2020-07-09

基本输入输出使用和裸机工程建立
    这个测试我做了好几天,之前曾经使用过EFM8的环境,但是发现这个版本对EFR32MG22的支持特别不好理解,似乎是不希望我们以裸机的方式使用他的输入输出接口。虽然我们可以看到安装的几个SDK都是支持当前这个CPU的,但是安装后的库文件中却没有这个CPU的相关信息。
如上图所示,库的描述中是包含EFR32MG22C224F512IM32信息描述的,但是实际的库文件中却不支持。如下图所示,V1.1版本的gecko库中没有EFR32MG22的相关信息。
1.   裸机工程创建
第一步:我们新建一个工程,选择“SiliconLabs MCU Project”,然后下一步
第二步:可以看到,如果我们连接了实际设备,通过Jtag系统已经给我们指定了板卡以及相应的控制器,我们这里要注意选择SDK为如图所示,否则后面的工程建立选择会缺少好几项。
第三步:选择“Empty C Program”项,点击先一步
第四步:输入一个工程名,这里输入“t2”,这个随便什么名字。注意,with project files项最好选择第二个,后面会比较好处理。然后下一步。
第五步:编译器选择,这里只有一个,GNU ARM V7.2.1版本,如果还有其它版本的编译器,尤其是4.9版本的,一定不要勾选,他还不支持这个处理器。点击“finish”,完成工程建立。
第六步:按下图方式,必须执行一次编译动作,编译的结果一定是错误的,因为前面说了,这个SDK还不支持我们的CPU,没关系,后面调整一下。
第七步:SDK切换。点击工程名,鼠标右键,选择属性,如下图所示,将SDK调整为v2.7.6版本,相应提示肯定回答。然后重新编译工程,可以正确编译通过了。
2.   配置硬件
Simplicity StudioIDE在使用EFM8时,其硬件配置和代码生成功能相当强大,让开发人员完全不用担心设备驱动的问题。对于EFR32MG22的支持似乎没有想象中好。
我们在工程名上右键,如下图所示,新建一个配置文件,然后下一步会打开一个硬件配置环境。
我们可以看到和实际CPU相同封装的一个图形出现在屏幕中央,根据需要我们可以选择对相应引脚的配置。配置完成后,点击保存按钮,会生成一个硬件配置文件hal-config.h。
3.   基本输入输出控制编程
这次测试的是brd4183a无线模块,根据接口定义,可以了解到,PB00接主板的button0,PB01接主板LED0 。
按照定义,在硬件配置器中调整相应引脚的定义,并生成hal-config.h配置文件。
打开工程中的main.c文件。我们需要引用头文件hal-config.h.为了完成输入输出引脚的控制,首先应该完成GPIO时钟的使能。
//开启GPIO时钟使能
CMU->CLKEN0 = (0x01<< 26);
    然后完成IO引脚模式初始化
//配置GPIO引脚的输入输出状态
    GPIO->P[LED0_PORT].MODEL |=(4 << LED0_PIN*4);
    GPIO->P[BTN0_PORT].MODEL |= (1<< BTN0_PIN*4);
    下面就是根据实际需要控制IO引脚了。我这里实现的是根据Button0的状态控制LED0的显示。
      if(GPIO->P[BTN0_PORT].DIN& (1<<BTN0_PIN))  //读取输入状态
        GPIO->P[GPIO_PORTB].DOUT&= ~bitcode[LED0_PIN]; //控制相应开出
      else
         GPIO->P[GPIO_PORTB].DOUT |=bitcode[LED0_PIN];
    实际测试,完成了实际目标,实现了通过按键控制LED显示状态的功能。

分享到:
回复

使用道具 举报

回答|共 14 个

倒序浏览

沙发

story_xjj

发表于 2020-7-10 09:37:43 | 只看该作者

这测试后,我又用BRD4182A做了一次测试,发现IDE对于4182A的支持远好于4183A,工程建立的过程可选项目就非常多了,后面的测试都会选用BRD4182A来进行。
回复 支持 反对

使用道具 举报

板凳

muxb

发表于 2020-7-16 16:14:12 | 只看该作者

story_xjj 发表于 2020-7-10 09:37
这测试后,我又用BRD4182A做了一次测试,发现IDE对于4182A的支持远好于4183A,工程建立的过程可选项目就非常多了,后面的测试都会选用BRD4182A来进行。

请问你用的SDK是工程自带的还是sign in之后从官网下载的?我无法sign in,不能下载他的SDK,该怎么办啊?
回复 支持 反对

使用道具 举报

地板

story_xjj

发表于 2020-7-17 12:58:43 | 只看该作者

muxb 发表于 2020-7-16 16:14
请问你用的SDK是工程自带的还是sign in之后从官网下载的?我无法sign in,不能下载他的SDK,该怎么办啊?

必须sign in下载SDK,要不然你啥都看不见
回复 支持 反对

使用道具 举报

5#

story_xjj

发表于 2020-7-17 12:58:43 | 只看该作者

muxb 发表于 2020-7-16 16:14
请问你用的SDK是工程自带的还是sign in之后从官网下载的?我无法sign in,不能下载他的SDK,该怎么办啊?

我也感觉sign in特别费劲,不知道是什么原因,有时候需要看运气。实在不行就试试其它网络。
回复 支持 反对

使用道具 举报

6#

muxb

发表于 2020-7-17 21:55:04 | 只看该作者

story_xjj 发表于 2020-7-17 12:58
我也感觉sign in特别费劲,不知道是什么原因,有时候需要看运气。实在不行就试试其它网络。

试了手机4G网络也不行,你的SDK能发我一份吗?谢谢了!
回复 支持 反对

使用道具 举报

7#

story_xjj

发表于 2020-7-20 09:03:40 | 只看该作者

muxb 发表于 2020-7-17 21:55
试了手机4G网络也不行,你的SDK能发我一份吗?谢谢了!

好像上G,估计不行
回复 支持 反对

使用道具 举报

8#

yangjiaxu

发表于 2020-7-20 09:03:27 | 只看该作者

你好,大佬,请教一下,我生成hal-config.h文件之后,将头文件引用到main.c中,编译之后提示我找不到hal-config.h请大佬指点一下吧


回复 支持 反对

使用道具 举报

9#

muxb

发表于 2020-7-20 14:39:54 | 只看该作者

story_xjj 发表于 2020-7-20 09:03
好像上G,估计不行

这么大啊,能上传到百度网盘吗?我从网盘上下,谢谢了!
回复 支持 反对

使用道具 举报

10#

story_xjj

发表于 2020-7-20 17:03:31 | 只看该作者

muxb 发表于 2020-7-20 14:39
这么大啊,能上传到百度网盘吗?我从网盘上下,谢谢了!

关键是不知道怎么找到这些SDK库文件的安装包,看到的都是安装后的状态。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条