overheat 发表于 2013-12-16 14:50:25

[nRF51822 AK II 教程]第三课,建立属于自己的开发板源码。

第三课,建立属于自己的开发板源码

如莫大所说,团购开发板的项目,主要是给大家提供一个学习的机会和平台。

既然平台有了,你也可以制作一款属于自己的穿戴设备开发板。这时除了设计硬件,你可能还会想要有属于自己的源代码。

今天我们就以nRF51822 AK开发板为例讲解一下,如何建立属于自己的开发板源码

首先,熟悉一下官方源码的结构:
Documentation---->文档
nRF51422   ---->内置ANT协议的芯片(非蓝牙)
nRF51822   ---->Board(官方开发板)------------>nrf6310(官方DK,里面的程序修改一下即可用)
             |--->Include(头文件)            |--->pca10000(官方Dongle)
             |--->Lib   (官方库,非源码)   |--->pca10001(官方EK主板,无需修改即用)
             |--->Source(官方提供的源码)
             |--->SVD       
所以,如果我们要增加一个对自己开发板支持的目录,请在“nrf51822\Board”下新建一个目录,如“ak”。

然后,打开“nrf51822\Board\pca10001\blinky_example\arm”下面的“blinky.uvproj”发现代码开头如下:
#include <stdbool.h>
#include <stdint.h>
#include "nrf_delay.h"
#include "nrf_gpio.h"
#include "boards.h"

上面的boards.h用来跟开发板相关的定义(LED,button和UART)文件,打开内容后如下:

#ifndef BOARDS_H
#define BOARDS_H

#if defined(BOARD_NRF6310)
#include "boards/nrf6310.h"
#elif defined(BOARD_PCA10000)
#include "boards/pca10000.h"
#elif defined(BOARD_PCA10001)
#include "boards/pca10001.h"
#elif defined(BOARD_PCA10003)
#include "boards/pca10003.h"
#elif defined(BOARD_PCA1000x)
#include "boards/pca1000x.h"
#else
#error "Board is not defined"
#endif

#endif

很简单的代码,主要就是根据Keil菜单中Project选项的Option for target nRF51822...中,C/C++选显卡中的define自动关联相应的头文件。
因此,我们可以加入我们自己开发板的头文件ak.h,如下:
#ifndef BOARDS_H
#define BOARDS_H

#if defined(BOARD_NRF6310)
#include "boards/nrf6310.h"
#elif defined(BOARD_PCA10000)
#include "boards/pca10000.h"
#elif defined(BOARD_PCA10001)
#include "boards/pca10001.h"
#elif defined(BOARD_PCA10003)
#include "boards/pca10003.h"
#elif defined(BOARD_PCA1000x)
#include "boards/pca1000x.h"
#elif defined(BOARD_AK)
#include "boards/ak.h"
#else
#error "Board is not defined"
#endif

#endif

最后,在“nrf51822\Include\boards”下,加入附件中的ak.h文件。

好了,现在我们就可以把pca10001中的“blinky_example”拷贝到我们刚才建立的ak目录中,之后修改Keil菜单中Project选型的Option for target nRF51822...中,C/C++选显卡中的define“BOARD_PCA10001”为“BOARD_AK”就行了。

现在,你有了自己的开发板源码,那么就开始折腾吧!

dadaohyb 发表于 2013-12-16 14:56:58

哈哈,沙发

xckhmf 发表于 2013-12-16 15:28:20

支持!!!!

qiqirachel 发表于 2013-12-16 15:59:32

坐等后续课程

liuzq1981 发表于 2013-12-16 16:07:57

求手机端 nRF HRM DEMO APP文件,google play 显示与设备兼容,就是不能下载,楼主能否提供下。

overheat 发表于 2013-12-16 16:15:05

liuzq1981 发表于 2013-12-16 16:07
求手机端 nRF HRM DEMO APP文件,google play 显示与设备兼容,就是不能下载,楼主能否提供下。 ...

在第一课的网盘里面的android4.3的每个程序下面有个bin文件夹,里面的apk文件就可以安装。

liuzq1981 发表于 2013-12-16 16:28:20

晕,还是andriod 4.3的问题,郁闷呀

Excellence 发表于 2013-12-16 16:31:22

{:victory:}{:victory:}{:victory:}

wenwu 发表于 2013-12-16 17:04:17

前三讲内容看完,
坐等后面的内容。感谢楼主。

wenhuaxiao 发表于 2013-12-16 17:07:29

我好象有这个板{:victory:}{:victory:}

overheat 发表于 2013-12-16 18:36:23

liuzq1981 发表于 2013-12-16 16:28
晕,还是andriod 4.3的问题,郁闷呀

咋回事?

lghtjpu 发表于 2013-12-16 19:12:05

没4.3的手机,买了先收藏着,等红米升到4.3才能玩了,呵呵

墨非 发表于 2013-12-16 20:35:10

团购了AK, 手上没有支持的手机,又买了个Dongle,应该是Dongle 2吧!
折腾一晚上,发现Dongle没串口数据输出接口。
本来想用AK+电池做移动端,Dongle接PC 做数据接收端。
才发现没法这么搞啊{:sweat:}{:sweat:}{:sweat:}

qiqirachel 发表于 2013-12-16 20:37:35

墨非 发表于 2013-12-16 20:35
团购了AK, 手上没有支持的手机,又买了个Dongle,应该是Dongle 2吧!
折腾一晚上,发现Dongle没串口数据输 ...

团购了AK, 手上没有支持的手机,又买了个Dongle,应该是Dongle 2吧!
折腾一晚上,发现Dongle没串口数据输出接口。
本来想用AK+电池做移动端,Dongle接PC 做数据接收端。
才发现没法这么搞啊

----------------------------------------------
发现在例程极不全面的情况下,只能接个串口答应个数据玩玩,挺无聊的
似乎例程更新速度是极其慢的,两天一更新,木有惊喜

Vmao 发表于 2013-12-16 20:39:44

bul4.1 有参考核心协议代码了吗

墨非 发表于 2013-12-16 20:48:27

qiqirachel 发表于 2013-12-16 20:37
团购了AK, 手上没有支持的手机,又买了个Dongle,应该是Dongle 2吧!
折腾一晚上,发现Dongle没串口数据 ...

看你们的 上手指导书上 Dongle 有uart数据线引出,我买的应该是升级版,没有uart接口引出。
还以为跟官方一样uart接到仿真芯片上了,然后PC虚拟出一个串口。
问了你们旺旺,说串口位置被按键占了没接出来!
那么我的Dongle 就只能拿来做仿真器了用了。。

qiqirachel 发表于 2013-12-16 21:33:26

墨非 发表于 2013-12-16 20:48
看你们的 上手指导书上 Dongle 有uart数据线引出,我买的应该是升级版,没有uart接口引出。
还以为跟官方 ...

看你们的 上手指导书上 Dongle 有uart数据线引出,我买的应该是升级版,没有uart接口引出。
还以为跟官方一样uart接到仿真芯片上了,然后PC虚拟出一个串口。
问了你们旺旺,说串口位置被按键占了没接出来!
那么我的Dongle 就只能拿来做仿真器了用了。。
----------------------------
麻烦看清楚,我不是楼主{:sweat:} {:sweat:}

墨非 发表于 2013-12-16 21:40:28

qiqirachel 发表于 2013-12-16 21:33
看你们的 上手指导书上 Dongle 有uart数据线引出,我买的应该是升级版,没有uart接口引出。
还以为跟官方 ...

不好意思,没带眼镜,瞄偏了,打扰了你!

qiqirachel 发表于 2013-12-16 21:41:27

楼主问个问题,我设置了串口发数据到电脑,每次烧入都可以接收到一次

但是按了reset键,单片机理应重启再次接受到数据啊,为什么没有反应呢

overheat 发表于 2013-12-16 21:43:47

qiqirachel 发表于 2013-12-16 21:41
楼主问个问题,我设置了串口发数据到电脑,每次烧入都可以接收到一次

但是按了reset键,单片机理应重启再 ...

reset按键和SWD调试接口的SWDIO是复用的,也就是说:你插着调试器的时候,这个reset建是不能用的(被调试器hold住了。。。)。

我爱电子制作 发表于 2013-12-16 22:22:37

适合那些没有接触大的协议栈开发的朋友用,对有运用大协议栈比如ZigBee,CC2540已经UCOS等的朋友来说,直接画板子,直接修改官网的demo.

qiqirachel 发表于 2013-12-19 03:37:22

楼主我问个问题,比如我需要用到内部温度传感器,但是我找不到温度传感器官方的库文件啊

overheat 发表于 2013-12-19 07:20:13

qiqirachel 发表于 2013-12-19 03:37
楼主我问个问题,比如我需要用到内部温度传感器,但是我找不到温度传感器官方的库文件啊 ...

官方SDK下面的board/nrf6310里面的代码也是一样可以用的。那个目录底下有温度传感器的例程。

techh 发表于 2013-12-19 10:21:10

overheat 发表于 2013-12-19 07:20
官方SDK下面的board/nrf6310里面的代码也是一样可以用的。那个目录底下有温度传感器的例程。 ...

请问有没有兼容2.4 GHz nRF24L 系列芯片的demo或者教程?

overheat 发表于 2013-12-19 17:48:28

techh 发表于 2013-12-19 10:21
请问有没有兼容2.4 GHz nRF24L 系列芯片的demo或者教程?

官方的led_radio_example就是,要是不急的话,我会在下下课讲到。

dongfo 发表于 2014-5-11 13:20:48

好久没人吱一声了,我能说我都还没能下载进程序吗?
呵呵大家都是一激动就买了的?
MDK 下不进去


nRFgo_studio擦不掉

overheat 发表于 2014-5-11 19:34:13

dongfo 发表于 2014-5-11 13:20
好久没人吱一声了,我能说我都还没能下载进程序吗?
呵呵大家都是一激动就买了的?
MDK 下不进去


看你的图片显示,应该是你的Jlink被认为是盗版了。

换一个Jlink吧,我们店里也有:)

Name_006 发表于 2014-5-11 21:28:52

dongfo 发表于 2014-5-11 13:20
好久没人吱一声了,我能说我都还没能下载进程序吗?
呵呵大家都是一激动就买了的?
MDK 下不进去


你那Jlink 很久没用了吧   重新 刷新一下固件吧网上多得是 刷新的方法                                                                                                                                                                                             

dongfo 发表于 2014-5-11 23:01:50

overheat 发表于 2014-5-11 19:34
看你的图片显示,应该是你的Jlink被认为是盗版了。

换一个Jlink吧,我们店里也有:) ...

已经刷好了,没事了

dongfo 发表于 2014-5-11 23:02:55

Name_006 发表于 2014-5-11 21:28
你那Jlink 很久没用了吧   重新 刷新一下固件吧网上多得是 刷新的方法                              ...

一直再用,用来下载STM32的程序一点问题都没有,唯独不能用在nRFgo Studio上。找一个固件刷了一下,没事了

ZMCU 发表于 2014-7-23 21:05:27

下来学习下
页: [1]
查看完整版本: [nRF51822 AK II 教程]第三课,建立属于自己的开发板源码。