前言: 学习nRF52832蓝牙芯片第一件要做的时候当然是建立并运行最简单的外设硬件工程,点亮一个LED.
步骤:
1. 这里我们使用官方提供的SDK外设工程(SDK版本: nRF5_SDK_17.0.0_9d13099),软件使用Keil V5.30, keil5需要安装两个Packs, 分别是
NordicSemiconductor.nRF_DeviceFamilyPack.8.32.1.pack
ARM.CMSIS.5.6.0.pack
例子工程我们使用blinky, SDK路径是: E:\BLE\nRF5_SDK_17.0.0_9d13099\examples\peripheral\blinky\pca10040\blank\arm5_no_packs 用keil5直接打开里面的blinky_pca10040.uvprojx 工程文件即可,官方已经为我们设置好一切(方便呀)。
打开后如下图:
2. 在main.c 文件下添加控制LED的函数即可。
#include <stdbool.h>
#include <stdint.h>
#include "nrf_delay.h"
#include "boards.h"
/**
* @brief Function for application main entry.
*/
void LED_Init(void)
{
// Configure LED-pins as outputs
nrf_gpio_cfg_output(LED_1);
nrf_gpio_cfg_output(LED_2);
nrf_gpio_cfg_output(LED_3);
nrf_gpio_cfg_output(LED_4);
}
void LED1_Open(void)
{
nrf_gpio_pin_clear(LED_1);
}
void LED1_Close(void)
{
nrf_gpio_pin_set(LED_1);
}
int main(void)
{
LED_Init();
/* Toggle LEDs. */
while (true)
{
LED1_Open();
nrf_delay_ms(500);
LED1_Close();
nrf_delay_ms(500);
}
}
编译,并下载到nrf52832开发板即可。
board.h 是官方开发板的头文件,SDK位置: nRF5_SDK_17.0.0_9d13099\components\boards 目录下包含了各个开发板不同芯片的头文件。
官方提供的外设硬件目录在: nRF5_SDK_17.0.0_9d13099\examples\peripheral\
调试外设硬件不涉及蓝牙部分,所以直接用keil5编译下载即可。不需要nRFgo软件下载协议栈到芯片。 因为不需要协议栈,所以芯片的ROM起始位置是0x0, RAM是0x20000000,默认开头位置。