nrf51802开发的一些说明


官方SDK下载
工程选择,下载官方的SDK,选择S130版本的
https://www.nordicsemi.com/Products/nRF51802/Download?lang=en#infotabs

解压SDK

上面那个才是SDK 下面的是说明文档
例子在这里

我是使用keil5.36开发,需要安装nrf的专门pack
安装 NordicSemiconductor.nRF_DeviceFamilyPack.8.11.1
https://developer.nordicsemi.com/nRF5_SDK/pieces/nRF_DeviceFamilyPack/NordicSemiconductor.nRF_DeviceFamilyPack.8.11.1.pack
还要安装 ARM.CMSIS.4.5.0.pack
https://keilpack.azureedge.net/pack/ARM.CMSIS.4.5.0.pack

选择哪个开发工程

SDK里面无nrf51802的板子,其实可以用nrf51822的板子替代,代号pca10028的

ble例子无改动编译报错处理


该文件在工程文件的下 RTE\Device\nRF51422_xxAC

用SDK 目录下的 components\toolchain 替换

重新编译就不报错了

以上问题出现在安装多个版本 nrf的pack 上

使用内部 32K RC
设置 使用内部 32K RC ,无外部32K晶振 蓝牙工程会启动不起来,官方SDK默认外部32K晶振

设置RTT打印日志

这里要设置对工程的RAM,不然rtt读取不到
配合 这个使用

设置ble广播时长

蓝牙数据接收,蓝牙本质都是靠回调处理,具体看这个函数,都是ble注册的函数。

工程ram设置

这里根据需求修改,地址从0x20000000 这里写 0x20002008是协议栈占用的 所有 ram 加起来不能超过0x4000

如何使用延时
引入头文件 nrf_delay.h

include "nrf_delay.h"

有ms和us的延时
void nrf_delay_us(uint32_t number_of_us);

void nrf_delay_ms(uint32_t number_of_ms);

烧录说明
烧录前用jflash擦除全片再烧录
如果下载失败 必须擦除全部flash才能下载,nrf有flash保护,下载了协议栈的区域是不能写入擦除,只能全片擦除
如果烧录ble例子,第一次必须烧录协议栈才行
切换工程,到协议栈,点

LOAD就能下载,注意协议栈不能编译!!!!!

下载好后在切换回例子,再下载

低功耗参考博客
https://blog.51cto.com/xuejianqiang/5810768
烧录完异常待机电流
烧录完测量待机电流发现在1ma左右,没进入低功耗,明明代码有写(默认工程一般都有低功耗),这时候只要重新复位一次就行了,是因为烧录完还处在jlink连接模式,不进入休眠

如何控制IO

include "nrf_gpio.h"

define EPD_BS 6

define EPD_BUSY 5

define EPD_RST 4

define EPD_DC 3

define EPD_CS 2

define EPD_CLK 1

define EPD_MOSI 0

define EPD_SCLK_L nrf_gpio_pin_write(EPD_CLK, 0);

define EPD_SCLK_H nrf_gpio_pin_write(EPD_CLK, 1);

define EPD_SDI_H nrf_gpio_pin_write(EPD_MOSI, 1);

define EPD_SDI_L nrf_gpio_pin_write(EPD_MOSI, 0);

define EPD_DC_H nrf_gpio_pin_write(EPD_DC, 1);

define EPD_DC_L nrf_gpio_pin_write(EPD_DC, 0);

define EPD_CS_L nrf_gpio_pin_write(EPD_CS, 0);

define EPD_CS_H nrf_gpio_pin_write(EPD_CS, 1);

define EPD_RST_L nrf_gpio_pin_write(EPD_RST, 0);

define EPD_RST_H nrf_gpio_pin_write(EPD_RST, 1);

define EPD_BUSY_READ nrf_gpio_pin_read(EPD_BUSY)

nrf_gpio_cfg_output(EPD_CS);
nrf_gpio_cfg_input(EPD_BUSY, NRF_GPIO_PIN_PULLUP);

原文链接:https://note.youdao.com/s/SCvNLOvR
作者:睡到自然醒


收藏

扫描二维码,在手机上阅读

SUOTA固件升级方式(空中OTA升级)

-

评 论
请登录后再评论