IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 蓝牙芯片nRF51822开发系列(一):环境搭建和GPIO使用(点亮LED) -> 正文阅读

[嵌入式]蓝牙芯片nRF51822开发系列(一):环境搭建和GPIO使用(点亮LED)

前言(文章末尾获取工程源码)

nRF51822是一款性价比较高的低功耗蓝牙(BLE)SoC,搭载ARM Cotex-M0内核,拥有丰富的外设:UART、I2C、SPI、8位可配置的ADC等等,可以满足大多数近距离无线通信的需求。但唯一不太好的地方是开发难度相对过高,对新手入门很不友好。


一、开发必备

需要准备以下工作:

  • ARM MDK Version 5,并从官网(https://www.keil.com/dd2/pack/)下载芯片支持包和安装;
  • nRFgo Studio,用于下载程序;
  • nRF51系列SDK开发工具,可从Nordic官网下载,如下图

在这里插入图片描述

二、开发环境搭建

1.创建文件


创建新的文件夹,其中component是SDK压缩包解压后的文件。config文件里面是sdk_config.h文件,是从SDK中examples复制过来(可以搜索一下查找)。Users是MDK工程存放的文件夹。

2.新建工程

选择芯片型号。
在这里插入图片描述

如图所示,选中CORE内核文件和Startup启动文件。
在这里插入图片描述
最简单的工程如下图所示。
在这里插入图片描述

三、编写代码

GPIO详解

nrf_gpio.h库文件内有对GPIO的详细介绍,下面列举几个主要的函数。

//输入输出
typedef enum
{
    NRF_GPIO_PIN_DIR_INPUT  = GPIO_PIN_CNF_DIR_Input, ///< Input.
    NRF_GPIO_PIN_DIR_OUTPUT = GPIO_PIN_CNF_DIR_Output ///< Output.
} nrf_gpio_pin_dir_t;

//上拉下拉
typedef enum
{
    NRF_GPIO_PIN_NOPULL   = GPIO_PIN_CNF_PULL_Disabled, ///<  Pin pull-up resistor disabled.
    NRF_GPIO_PIN_PULLDOWN = GPIO_PIN_CNF_PULL_Pulldown, ///<  Pin pull-down resistor enabled.
    NRF_GPIO_PIN_PULLUP   = GPIO_PIN_CNF_PULL_Pullup,   ///<  Pin pull-up resistor enabled.
} nrf_gpio_pin_pull_t;

//输入输出初始化配置
void nrf_gpio_cfg_output(uint32_t pin_number);
void nrf_gpio_cfg_input(uint32_t pin_number, nrf_gpio_pin_pull_t pull_config);

//输出高低/翻转电平
void nrf_gpio_pin_set(uint32_t pin_number);
void nrf_gpio_pin_clear(uint32_t pin_number);
void nrf_gpio_pin_toggle(uint32_t pin_number);

//读输入输出电平
uint32_t nrf_gpio_pin_read(uint32_t pin_number);
uint32_t nrf_gpio_pin_out_read(uint32_t pin_number);

使用的开发板介绍

本次使用的是某宝上带LIS3DH三轴加速度传感器的最小系统板,原理图大概如下(真正的原理图并没有提供)
在这里插入图片描述

在这里插入图片描述

编写主函数

由上面的原理图可知,P0.07管脚连接LED。

#include "nrf_delay.h"
#include "nrf_gpio.h"

#define LED 7

int main(){
	
	nrf_gpio_cfg_output(LED);  
	
	nrf_gpio_pin_clear(LED); //输出低电平
	
	while(1){
		

			
		nrf_gpio_pin_toggle(LED);  //翻转电平
		
		nrf_delay_ms(1000);
		
		
	}
}

引入头文件路径

编写完主函数后,会发现编译报错,是因为没有引入头文件路径。将头文件路径引入,如下图。
在这里插入图片描述
并设置宏定义,如下图
在这里插入图片描述
在这里插入图片描述
最后编译通过,创建了HEX文件。

四、下载程序

J-Link的SW方式连接开发板和PC,打开nRFgo Studio。

  1. 点击nRF5x Programming;
  2. 点击Erase all清空存储器;
  3. 选择hex文件;
  4. 下载

在这里插入图片描述
下载成功!
在这里插入图片描述

五、源码获取

关注公众号,查看相关文章获取源码
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:57:40  更:2021-08-02 10:57:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 10:16:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计