查看: 7988|回复: 14

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

[复制链接]
  • TA的每日心情
    开心
    2022-11-7 10:36
  • 签到天数: 898 天

    连续签到: 1 天

    [LV.10]以坛为家III

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

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-7 10:36
  • 签到天数: 898 天

    连续签到: 1 天

    [LV.10]以坛为家III

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

    使用道具 举报

  • TA的每日心情
    开心
    2021-11-1 18:27
  • 签到天数: 185 天

    连续签到: 1 天

    [LV.7]常住居民III

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

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

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-7 10:36
  • 签到天数: 898 天

    连续签到: 1 天

    [LV.10]以坛为家III

     楼主| 发表于 2020-7-17 12:58:43 | 显示全部楼层
    muxb 发表于 2020-7-16 16:14
    请问你用的SDK是工程自带的还是sign in之后从官网下载的?我无法sign in,不能下载他的SDK,该怎么办啊?

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

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-7 10:36
  • 签到天数: 898 天

    连续签到: 1 天

    [LV.10]以坛为家III

     楼主| 发表于 2020-7-17 12:58:43 | 显示全部楼层
    muxb 发表于 2020-7-16 16:14
    请问你用的SDK是工程自带的还是sign in之后从官网下载的?我无法sign in,不能下载他的SDK,该怎么办啊?

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

    使用道具 举报

  • TA的每日心情
    开心
    2021-11-1 18:27
  • 签到天数: 185 天

    连续签到: 1 天

    [LV.7]常住居民III

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

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

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-7 10:36
  • 签到天数: 898 天

    连续签到: 1 天

    [LV.10]以坛为家III

     楼主| 发表于 2020-7-20 09:03:40 | 显示全部楼层
    muxb 发表于 2020-7-17 21:55
    试了手机4G网络也不行,你的SDK能发我一份吗?谢谢了!

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-17 11:18
  • 签到天数: 491 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2020-7-20 09:03:27 | 显示全部楼层
    你好,大佬,请教一下,我生成hal-config.h文件之后,将头文件引用到main.c中,编译之后提示我找不到hal-config.h请大佬指点一下吧

    QQ截图20200719203201.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-11-1 18:27
  • 签到天数: 185 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2020-7-20 14:39:54 | 显示全部楼层
    story_xjj 发表于 2020-7-20 09:03
    好像上G,估计不行

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

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-7 10:36
  • 签到天数: 898 天

    连续签到: 1 天

    [LV.10]以坛为家III

     楼主| 发表于 2020-7-20 17:03:31 | 显示全部楼层
    muxb 发表于 2020-7-20 14:39
    这么大啊,能上传到百度网盘吗?我从网盘上下,谢谢了!

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

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-10-18 14:16 , Processed in 0.224745 second(s), 34 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.