tag 标签: EFR32

相关博文
  • 热度 2
    2024-1-15 10:46
    592 次阅读|
    0 个评论
    创建工程 选择 New project wizard 点击next 双击empty c project。 选择copy contents 点finish 进入software component,添加外设组件。 外设VCOM install swo usart Automatic Device Initialization Services: IO Stream: USARTInstall 创建一个vcom实例 Services :IO Stream: Retarget STDIOInstall 导入以下头文件到app.c #include #include #include "em_chip.h" #include "sl_iostream.h" #include "sl_iostream_init_instances.h" #include "sl_iostream_handles.h" const char str1[] = "IOstream USART example\r\n\r\n"; sl_iostream_write(sl_iostream_vcom_handle, str1, strlen (str1)); 这样就可以用l_iostream_write写入数据到串口 Printf 重定向 在software component搜索tiny printf tiny printf GPIOLed Platform:driver:led:Generic LED API 点击install 点击done创建一个实例 #include "sl_simple_led.h" 里是led的功能函数 sl_simple_led_init(&simple_led0_context);初始化 sl_simple_led_turn_on点灯 sl_simple_led_turn_off关灯 sl_simple_led_toggle反转 sl_simple_led_get_state获取灯的状态 typedef struct { GPIO_Port_TypeDef port; ///< LED port uint8_t pin; ///< LED pin sl_led_polarity_t polarity; ///< Initial state of LED } sl_simple_led_context_t;//LED初始化结构体 底层头文件 #include "em_gpio.h GPIO_PinOutClear() Set bits in DOUT register for a port to 0. GPIO_PortOutSet Set bits GPIO data out register to 1. GPIO_PortOutToggle Toggle pins in GPIO port data out register. GPIO_PinOutGet Get current setting for a pin in a GPIO port data out regisl_simple_led_context_t *led = context;ster. 初始化过程 sl_simple_led_context_t simple_led0_context = { .port = SL_SIMPLE_LED_LED0_PORT, .pin = SL_SIMPLE_LED_LED0_PIN, .polarity = SL_SIMPLE_LED_LED0_POLARITY, };初始化结构体 sl_simple_led_context_t *led = context; CMU_ClockEnable( cmuClock_GPIO , true);//时钟使能 port, pin, gpioModePushPull , polarity); 配置引脚 Button Platform:driver:led:Generic LED button API 创建一个button实例 void button_init () { CMU_ClockEnable( cmuClock_GPIO , true); GPIO_PinModeSet( gpioPortB , 2, gpioModeInput , 0); //初始化输入模式 //浮空输入 gpioModeInput , gpioModeInputPull,上来下拉由第四个参数决定 1上拉/0下拉 } GPIO_PinInGet( gpioPortB ,2)获取b2的输入电平 time sleeptimer service:time:sleeptimer Sleepimer驱动程序使用低频实时时钟外设提供软件定时器、延迟、计时和日期功能。睡眠定时器使用一个硬件定时器并创建多个软件定时器实例。睡眠定时器可用于创建与电源管理紧密集成的定时器。电源管理器需要精确的计时,以使所有时钟按时准备就绪,因此唤醒发生得更早一点,为系统在正确的时间做好准备。 sl_sleeptimer_init();//初始化睡眠定时器 sl_sleeptimer_timer_handle_t handle; sl_sleeptimer_start_periodic_timer(&handle,1000,timecallback,NULL,0,true);开启定时周期回调 void timecallback ()//回调函数 { printf("1"); printf("sl_simple_button_get_state %d\r\n",GPIO_PinInGet( gpioPortB ,2)); } Silicon lab的定时器有用了app_timer封装了一层sleeptime使用 用法一样只不过少了初始化步骤 static app_timer_t app_periodic_timer; sc = app_timer_start(&app_periodic_timer, SL_BT_HT_MEASUREMENT_INTERVAL_SEC * 1000, app_periodic_timer_cb, NULL, true);//开启定时器 app_periodic_timer_cb(&app_periodic_timer, NULL);//重写写定时回调函数 执行定时任务 temp platform:driver:tempdev 温度驱动器使用一些EFR32和EFM32设备上的EMU内部温度传感器测量温度。特定于应用程序的回调函数可以注册,并将在给定的温度阈值上调用。EMU内部温度传感器在EM0-EM4H中运行,能够在温度变化时唤醒核心。EMU温度传感器连续运行,每250毫秒进行一次测量。对于适用勘误表EMU_E201的设备,温度驱动器执行一种变通方法,根据测量的温度调整EMU设置。有关此勘误表解决方法的更多信息,请参阅应用说明AN1027。 导入 #include "tempdrv.h" TEMPDRV_Init(); printf("TEMPDRV_GetTemp %d\r\n",TEMPDRV_GetTemp());
  • 热度 2
    2024-1-12 11:30
    492 次阅读|
    0 个评论
    EFR32MG24开发板介绍及IDE使用
    板卡如图 板上的资源有 EFR32MG24无线SOC,Jlinlk调试器(可用作虚拟串口),两颗用户按键,两颗LED灯,板载天线。 片上资源有 包含:32个GPIO,其中20个GPOIO通过排座引出。1536kb的flash,256kb的ram。8通道dma控制器。一个可配置为UART/SPI/SmartCard (ISO 7816)/IrDA/I2S的通信接口。2个EUSART增强型的usart。2个支持SMBus的I2C接口。9个定时器包含2个32位定时器,3个16位定时器,1个24位的低功耗定时器,1个32位RTC定时器,一个32位极低功耗的定时器用于从能量模式唤醒,2个看门狗定时器。1个增强型ADC最高16位 76.9ksps,12位 1Msps采样率。2个模拟比较器。2个12位500 ksps采样率的DAC。内置温度传感器。支持jtag/swd调试。 基于ARM cm33内核,时钟72Mhz 开发工具介绍 EFR32支持MDK,IAR,Silicon IDE开发,其中官方例程只有IAR和Silicon IDE版本。Silicon IDE功能非常强大,首先IDE基于Eclipse开发的,内置芯片的软件包software component,可直接从IDE下载芯片的SDK以及无线分析工具。 开始界面 在debug adapters窗口会发现所连接的芯片。 点击INSTALL按钮 选择install by connecting device 后会自动下载芯片支持的SDK。包括蓝牙SDK和外设库文件,BLE网络配置器,网络分析仪用于抓包,BLE GATT 配置器,GNU ARM工具链等。 当在welcome界面点击start后会进入如下界面。 包含四部分 Overview Example Document Component tools Overview 介绍了所连接调试器类型,mcu类型,sdk版本。 芯片相关的文档。 开发板下相关的文档 exampe 1.包含无线连接的例程 2.没有无线连接的例程 3.组网协议相关的例程 zigbe,buletooth mesh等 4.用户开发用的demo例程 5.有关低功耗,蓝牙通信解决方案的例程 3.document 1.芯片相关:数据手册,应用指南,电气规范,快速开始等 2.技术相关:蓝牙,zigbee组网协议,bootloader等 4.component tools 提供网络强度,数据抓包,flash下载,能耗分析等 工程模板导入及编译下载 点击create new project,在example里搜索blink bare metal。无通信的Led的例程。点击next 到如图 填写合适的工程名称,选择一个工程创建位置,最后一个选择以怎样的方式使用SDK的库文件。 选择copy所需的库文件以及所需的文件到工程目录。 点击finish完成创建。 右击工程目录,或者 菜单栏 的project Build project 生成可执行文件,bin,hex,elf文件等。 点击RUN AS下载程序 也可使用simplicity commder下载程序 在selec kit选择440322824 选择flash选项 Browse选择bin文件,点击flash即可。重启开发板 Hex文件在C:\Users\18739\SimplicityStudio\v5_workspace\blink_baremetal\GNU ARM v12.2.1 - Default\blink_baremetal\GNU ARM v12.2.1 - Default下 结果如图 LED闪烁