我的nrf51822学习笔记

更新时间:2023-11-09 01:25:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

6月14日

开发环境的搭建:

http://wenku.http://www.wodefanwen.com//view/a9ce127908a1284ac85043dd.html

前几天学习了nrf51822芯片详解

http://wenku.http://www.wodefanwen.com//link?url=NoIPFYcVFVQiqtgcTIVDbTFKJsfSY0MnBKiQzptXa8Cirghc3ZCx2STEduYpEMztfAdoMTN08Xf2pFZpAyJbYF_MV7NqPxyWwA1qFPkKOoW 以前已将SDK,J-Link安装好。

今天开始学习nRF51822 在MDK中创建新工程

http://wenku.http://www.wodefanwen.com//link?url=BGtmdmEEJg3lzoEFq7HB3LBTbZn2L9fD7rGiwBPYQkbR-gEQuwScXm5L-DIMHjifN2FNsRgbQJv9uaT03cp2AnJZUbLm5htwoIbJLu8tdv7 遇到如下问题: 1、

注:首先选择Nordic nRF51 Series Devices才能开始选择芯片类型(安装SDK才能有)。 我买的芯片上面显示nrf51822QFACA1,该选择AA还是AB? 网上搜得AA与AB的区别为

只是flash与运行代码大小的区别。

淘宝介绍说该芯片为256Kbflash,所以应该是QFAA。 6月15日

关于JLINK用SWD模式与nrf51822的连接。

我连接的是GND(随便哪个地),VCC(pin1),TMS(pin7),TCK(pin9). 网上说可能还得接pin15的复位脚,但是我暂时没接。

接下来就是讲程序烧录看行不行。

1、有个问题,网上找的那个创建工程中并没有用户自己的文件(即像stm32中创建的时候会建立mai.c)不是很明白。编译能通过,但是load的时候出现问题。

2

Load时出现如下错误:

但是reset菜单没找到在哪里? 又出现新问题:

解决方法:

第一次的时候没有遇到这个问题,所以可能是连线没接好,而且后来的jlink总感觉绿灯是闪亮的,很有可能是连线问题。 网上的答案: 1.确保接线正确;

2. 高版本jlink固件可识别出赝品jlink,而MDK5.x版本要求SEGGER固件高于V4.78,排查是否是盗版jlink导致该问题发生。若是,可网购jlink-ob小调试器;

3.如果是在程序烧写成功一次后,第二次烧写时报错no cortex-m sw device found,极有可能是软件中设置了SWDIO或SWCLK I/O口的端口模式,由于I/O口一直被占用,使芯片sw端口不能用于下载调试。解决办法:先将boot0保持拉高,再按下复位,然后boot0拉低,之后可以正常使用。

网上答案:

使用过程中笔者发现,当目标板的芯片处于休眠的时候,在尝试连接目标板时候也会出现报错Internal command error Flash download failed target dll has been can的现象,解决办法是使目标板退出休眠,即按住reset键再下载程序。

6月16日

http://blog.csdn.net/lr2131/article/details/42106169打算顺着这篇的思路去学习。 首先最大的问题是,代码都看不懂,英文也不理解。 先把英文的问题解决掉。

蓝牙协议栈和ble协议栈为什么不一样?

Ble协议栈

6月17日

貌似开发环境少下东西了

关于s110 softDevice和nRFgoStdio都是从http://download.csdn.net/上下载的。

9月13日

打开案例文件,出现的问题:

1、未安装的项目引用设备、文件或库

看起来是没有安装sdk的原因,但是我已经安装了呀

某个回答:Are you sure the code does not compile? I get the exact same message, but I can just click OK and continue working. And it compiles just fine.

或许是可以用的。这个以后再看。 2、..\\..\\..\\..\\Include\\nrf51.h(101): error: #5:

cannot open source input

file \

主要是因为mdk版本的原因,手动添加就可以了(以后假如还有问题,还是换个低一点的版本吧) 方法:

添加方法:点击魔术棒-->C/C++选项卡-->Include Paths ,选择我们MDK安装目录,找到\\ARM\\Pack\\ARM\\CMSIS\\4.1.1\\CMSIS\\Include,如图2所示:

图2 手动添加CMSIS头文件路径.

3、options的时候碰到问题

但是打开其他工程的时候是有的

?

选择后面的蓝字,点进官网下载。

?

可能是下的版本有问题,虽然能选择device了,但是并没有所需要的。

再选个其他版本试试。

在历程中会报错,但是自己建工程的时候却是做了反而报错。

反正假如有错就改正吧。

自己建的工程烧写的时候说接线连错。

那该怎么连接呢。

9月20号

今天主要解决了为什么会连接不上的问题。接线是正确的。开始以为是驱动的问题,但是换了驱动之后仍旧是这样,然后怀疑J-LINK,但是仍旧不行。后来发现是nRFgo studio的问题,版本太低或者版本有错误,换了1.15.1版本之后解决了。 但是就是不能用keil烧录,一用keil就会死机。

烧录proximity的程序,但是手机连接不到。可能是版本的原因,sdk的版本和协议栈的版本。老师的那个版本sdk也试了一下还是不行。

9月22日

试了很多支手机,但都是连接不到。所以初步认定代码有问题。(官网提供的代码基本是没有问题的!协议栈烧录问题。)

按照原本的promixity工程自己写了一个,但是出现如下问题:

..\\Include\\app_common\\pstorage.h(28): error: #5: cannot open source input file \

都是找不到头文件,但是头文件已经添加了。 可能是c++那边设置的问题。 我按照教程设置的:

NRF51 BOARD_PCA10000 历程设置的:

NRF51 DEBUG_NRF_USER BLE_STACK_SUPPORT_REQD BOARD_PCA10001 但是这两种设置都不行,或许和sdk的版本有问题?

Pca1001里s110里面的程序预处理宏定义都是:

NRF51 DEBUG_NRF_USER BLE_STACK_SUPPORT_REQD BOARD_PCA10001 但是pca1001里面其他工程都是: NRF51 BOARD_PCA10001

而pca1000里面的工程都是: NRF51 BOARD_PCA10000

Nrf6130里面的文件除s110和s120里面大部分是: NRF51 BOARD_NRF6310 也有:

NRF51

S110文件里面的工程:

NRF51 DEBUG_NRF_USER BLE_STACK_SUPPORT_REQD BOARD_NRF6310

看到这里,有一个疑问,pca1001和pca1000以及nrf6310到底是什么,以前某地方看到说是硬件?

Pca1001和nrf6310里面都有可以下载的从机程序。Pca1001中除s110以外的文件烧写的时候是不用协议栈的,假如先烧写了协议栈会造成普通工程无法烧写的情况;但是s110里面的文件需要。

这些问题都解决了之后造成手机无法搜索设备的原因主要是因为协议栈版本的原因,不需要使用太高的版本,主要是和芯片配套。

9月25日

总结一下学习nrf51822中要用到的软件,也顺便帮自己理一遍思路。

一开始什么都看不懂,走了很多弯路,其实就看淘宝那边提供的用户手册就可以了。如下: http://www.waveshare.net/wiki/NRF51822_Eval_Kit_User_Manual

网上也能找到很多资料,但是太过杂乱,不一定对自己的情况是有效的。不过学习的过程中这种都是无法避免的。 我现在使用的版本: J-Link V4.90

S110_nrf51822_6.0.0版本太高对芯片没用。一开始使用8.0版本手机无法搜到芯片。 nrf51_sdk_v5_1_0_36092

nrfgostudio_win-64_1.15.1_installer版本太低都搜不到芯片 手机上需要下载: nRF Toolbooks Light Blue

现在所面临的问题如下:

首先,串口调试,因为连接问题,电脑一直搜不到串口,等底座买回来再做实验。 其次,就是proximitv烧录之后,手机并不能显示距离的问题。 等以上问题搞清楚了之后,再慢慢按所需要的要求调试。 串口:

不知道为什么,打开不了串口。 因为串口号com4没有选。。。

串口发送和接收到的不一样?/

发送的是类似qwertyuioplkjhgfdsa接收到的是nil0x159a3177是这样的接收到的16进制 而且手机会时常连接不到nrf usar

Proximity:

按k1键手机会报警,再按一下停止报警。

当距离超过5米左右会报警,但是具有延时性,得过四五秒才会发出报警信号,按K1键停止报警。

Gpiote

利用任务和事件对gpio口进行访问。 Bsp

BSP是板级支持包,(board support package)是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。

本文来源:https://www.bwwdw.com/article/4jyv.html

Top