nRF52832:使用 SEGGER Embedded Studio(SES)创建库文件

系统环境

  • 系统:macOS 11.2
  • 网络:联网

软件环境

  • 编译器环境:SEGGER Embedded Studio v5.40(SES)
  • 镜像烧录器:nRF Connect v3.6.1
  • 仿真器驱动:J-Link Software and Documentation Pack v6.94a
  • 软件开发包:nRF5 SDK v15.3.0

硬件环境

  • 开发板:nRF52 DK v1.1.0

创建库工程

  • 在 Embedded Studio 的菜单栏点击“File -> New Project...”,在弹出的向导中选择“An ARM library project.”选项,并为工程添加名字,如此处“xz_alg_plus”。之后点击“Next”。

  • 由于要使用 nRF52832 作为硬件平台,这里选择 nRF52832 的内核,即“Cortex-M4”。注意这里没有“Cortex-M4F”选项, 但加入 FPU 可以在后面的工程设置中更改。点击“Next”直到工程建立。

  • 在左侧工程导航栏,右键点击工程名,选择“Add New File...”来添加一对头文件和源文件。分别命名为“xz_alg_plus.h”和“xz_alg_plus.c”。

  • 这里仅以一个简单的加法例子作为库的功能。在头文件“xz_alg_plus.h”中输入如下示例代码:
/******************************************************************************
* File    xz_alg_plus.h
*
* Brief   This file contains definitions and prototypes of the plus algorithm
*         made by XizhiTek.
*
* Target  nRF52832-QFAA
******************************************************************************/
#ifndef XZ_ALG_PLUS_H
#define XZ_ALG_PLUS_H

#ifdef __cplusplus
extern "C"
{
#endif

/******************************************************************************
* Includes
******************************************************************************/
#include <stdint.h>

/******************************************************************************
* Functions
******************************************************************************/
/******************************************************************************
* Fn      xz_alg_plus
*
* Brief   Get the sum of two addends.
*
* Param   [in]addend_a: an addend;
*         [in]addend_b: another addend.
*
* Return  sum: the sum of the two addends.
******************************************************************************/
extern uint8_t xz_alg_plus(uint8_t addend_a, uint8_t addend_b);

#ifdef __cplusplus
}
#endif

#endif /* XZ_ALG_PLUS_H */
  • 在源文件“xz_alg_plus.c”中输入如下示例代码:
/******************************************************************************
* File    xz_alg_plus.c
*
* Brief   This file contains the implement of the plus algorithm made by
*         XizhiTek.
*
* Target  nRF52832-QFAA
******************************************************************************/
/******************************************************************************
* Includes
******************************************************************************/
#include "xz_alg_plus.h"

/******************************************************************************
* Functions
******************************************************************************/
/******************************************************************************
* Fn      xz_alg_plus
*
* Brief   Get the sum of two addends.
*
* Param   [in]addend_a: an addend;
*         [in]addend_b: another addend.
*
* Return  sum: the sum of the two addends.
******************************************************************************/
uint8_t xz_alg_plus(uint8_t addend_a, uint8_t addend_b)
{
    uint8_t sum = 0;

    sum = addend_a + addend_b;

    return sum;
}
  • 如果想要启用 nRF52832 的 FPU,需要更改工程设置。在左侧工程导航栏中,右键点击工程名,选择“Option”,在“Code Generation”中,将“ARM FP ABI Type”选项设置为“Hard”,即启用硬件 FPU。再将“ARM FPU Type”设置为“FPv4-SP-D16”。

  • 点击右上角的“Build”或者按 F7 键开始构造,可以看到构造无误。左侧出现“Output Files”文件夹,可以看待文件夹内已包含生成的“xz_alg_plus.a”库文件。至此,静态库文件创建完成。

验证库文件

  • 在 nRF5 SDK 中的“peripheral”目录下的“blinky”示例做修改,先讲做好的库文件“xz_alg_plus.a”和头文件“xz_alg_plus.h”放在“main.c”所在目录中。这里使用“blank”的工程。

  • 在 SES 中打开此工程,将库文件“xz_alg_plus.a”和头文件“xz_alg_plus.h”添加到工程的“Aplicaiton”文件夹下。在“main.c”文件中添加头文件,并修改主函数,来改变延时时间,代码如下:
/** @file
 *
 * @defgroup blinky_example_main main.c
 * @{
 * @ingroup blinky_example
 * @brief Blinky Example Application main file.
 *
 * This file contains the source code for a sample application to blink LEDs.
 *
 */

#include <stdbool.h>
#include <stdint.h>
#include "nrf_delay.h"
#include "boards.h"
#include "xz_alg_plus.h"

/**
 * @brief Function for application main entry.
 */
int main(void)
{
    uint8_t time = 0;
    /* Configure board. */
    bsp_board_init(BSP_INIT_LEDS);

    /* Toggle LEDs. */
    while (true)
    {
        for (int i = 0; i < LEDS_NUMBER; i++)
        {
            bsp_board_led_invert(i);
            time = xz_alg_plus(100, 80);
            nrf_delay_ms(time);
        }
    }
}

/**
 *@}
 **/
  • 此时,延时时间应从原来的 500ms 变为 180ms。点击右上角的“Build”或者按 F7 键开始构造,可以看到构造无误。

  • 开始调试,可以在断点处看到,变量“time”的值已经变成 0xb4,即 180。这说明,库文件已经正常工作。验证成功。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nRF52832是一款高度集成的多协议系统级芯片(SoC),广泛应用于物联网(IoT)、无线传感器网络及低功耗蓝牙(Bluetooth Low Energy,BLE)等领域。以下是nRF52832使用教程的一般步骤: 1. 硬件搭建:对于使用nRF52832进行开发的项目,首先需要搭建硬件环境。这可能包括购买nRF52832开发板、连接外部传感器、电源以及调试工具等。 2. 开发环境搭建:下载并安装nRF5 SDK(Software Development Kit),这是nRF52832开发所需的软件工具包。这个SDK提供了开发所需的文件、示例代码和编译工具。 3. 编写代码:使用C或C++等编程语言,编写逻辑代码以控制和配置nRF52832的功能。可以使用SDK提供的示例代码作为起点,根据项目需求进行修改和调试。 4. 编译和烧写:使用SDK提供的编译工具将代码编译为可执行文件,然后使用下载器将可执行文件烧写到nRF52832芯片上。这个过程通常需要连接开发板到计算机,并按照指示进行操作。 5. 调试和测试:在代码烧写完成后,可以使用调试器工具对nRF52832进行调试和测试。这些工具可以帮助开发者查找和修复代码中的错误,并确保程序的正常执行。 6. 运行应用程序:将开发板上的nRF52832连接到相应设备或系统中,通过编写的应用程序进行功能验证和测试。在此过程中,你可以使用SDK提供的开发工具和文件来加强和扩展应用程序的功能。 总之,nRF52832使用教程包括硬件搭建,开发环境搭建,编写代码,编译和烧写,调试和测试以及运行应用程序。通过这些步骤,开发者可以利用nRF52832的强大功能来实现各种物联网和低功耗蓝牙应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值