回答

收藏

[评测分享] 【Silicon Labs EFR32xG24 开发套件】创建新工程

#板卡评测 #板卡评测 2011 人阅读 | 0 人回复 | 2023-01-12

创建新工程
1、在Simplicity Studio中创建新工程可以有2种模式,空的Application,这个模板提供了从底层完全构建的方法。这样的方法,提供一个空的模板也在Keil中提供了。
对于Simplicity Studio而言,最主要的是使用GeckoSDK,这个Silab提供的开发API Stack栈,能够快速便捷开发实际应用,尤其是无线协议这样复杂而又需要认证的协议,直接采用Gecko SDK是最终的方法。
2、新的工程可以采用Import引进的方法,从File——import中选择输入,


找到目录所在的.sls文件,直接导入已经建立的工程。然后选择需要适应的Gecko SDK版本,以及编译工具,


直接快速建立工程。



3、也可以从范例中创建。选择New Project,选择Wizard选择,然后就提供可以参考的范例,选择好目录就可以直接创建。


创建的工程可以build,



然后debugg下载到开发板中,这个是远程的蓝牙控制开关和灯的范例,在EFR Connect的手机APP可以直接访问


4、启动EFR Connect后,首先提示要打开蓝牙


然后进入Blink SoC的功能选择,就可以搜索到这个范例


连接成功后就可以进一步执行操作,这个可以铜鼓触碰灯的图形控制开发板上红色LED的对应开关,开发板上的按键BTN1,对应下面按键的状态,按下时同步显示蓝色,释放时显示白色。这个简单范例,其实可以作为很多远程控制的开发模板直接使用。


5. 功能的实现时用了标准的线程实现,主程序只启动了一个线程。
  1. app_process_action();
复制代码
主程序代码如下

  1. #include "sl_component_catalog.h"
  2. #include "sl_system_init.h"
  3. #include "app.h"
  4. #if defined(SL_CATALOG_POWER_MANAGER_PRESENT)
  5. #include "sl_power_manager.h"
  6. #endif // SL_CATALOG_POWER_MANAGER_PRESENT
  7. #if defined(SL_CATALOG_KERNEL_PRESENT)
  8. #include "sl_system_kernel.h"
  9. #else // SL_CATALOG_KERNEL_PRESENT
  10. #include "sl_system_process_action.h"
  11. #endif // SL_CATALOG_KERNEL_PRESENT

  12. int main(void)
  13. {
  14.   // Initialize Silicon Labs device, system, service(s) and protocol stack(s).
  15.   // Note that if the kernel is present, processing task(s) will be created by
  16.   // this call.
  17.   sl_system_init();

  18.   // Initialize the application. For example, create periodic timer(s) or
  19.   // task(s) if the kernel is present.
  20.   app_init();

  21. #if defined(SL_CATALOG_KERNEL_PRESENT)
  22.   // Start the kernel. Task(s) created in app_init() will start running.
  23.   sl_system_kernel_start();
  24. #else // SL_CATALOG_KERNEL_PRESENT
  25.   while (1) {
  26.     // Do not remove this call: Silicon Labs components process action routine
  27.     // must be called from the super loop.
  28.     sl_system_process_action();

  29.     // Application process.
  30.     app_process_action();

  31. #if defined(SL_CATALOG_POWER_MANAGER_PRESENT)
  32.     // Let the CPU go to sleep if the system allows it.
  33.     sl_power_manager_sleep();
  34. #endif
  35.   }
  36. #endif // SL_CATALOG_KERNEL_PRESENT
  37. }
复制代码
其中蓝牙相关的设置,也可以不用去代码中去找,在一个GATT_configuration中用图形化的方法,按照蓝牙的规约编写,可以直接修改。

这样在经历了不那么顺利的安装过程后,项目建立的过程就非常轻松。




分享到:
回复

使用道具 举报

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

本版积分规则

关闭

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