Presentation is loading. Please wait.

Presentation is loading. Please wait.

《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:

Similar presentations


Presentation on theme: "《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:"— Presentation transcript:

1 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺: 技术论坛: 开源电子网 公众平台:“正点原子” 官方网站: 联系电话: ddddd ALIENTEK 淘宝店铺: 技术论坛:

2 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
《手把手教你学STM32》 无线通信实验 适用平台 STM32 开发板 (正点原子) ddddd 淘宝店铺: 技术论坛:

3 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
本视频重点参考资料 参考资料: 1,MiniSTM32F1 V3开发板 《STM32不完全手册-库函数版本》——无线通信实验 2,战舰/精英STM32F1开发板 《STM32F1开发指南-库函数版本》——无线通信实验 3,探索者STM32F4开发板 《STM32F4开发指南-库函数版本》——无线通信实验 4,NRF24L01参考资料 见光盘:硬件资料NRF24L01模块资料 ① nRF24L01P(新版无线模块控制IC).pdf ② NRF24l01模块说明书.pdf ③中文说明书手册 nRF24L01中文说明书.pdf 淘宝店铺: 技术论坛:

4 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
目录 NRF24L01简介 1 硬件连接 2 源码讲解&例程测试 3 淘宝店铺: 技术论坛:

5 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-什么是NRF24L01? NRF24L01是NORDIC公司生产的一款无线通信通信芯片,采用FSK 调制,集成NORDIC自家的Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信。无线通信速度最高可达到2Mbps。 NRF24L01采用SPI通信,可以很方便的连接到MCU上面。 淘宝店铺: 技术论坛:

6 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-NRF24L01的特点 ①2.4G全球开放的ISM频段,免许可证使用。 ②最高工作速率2Mbps,高校的GFSK调制,抗干扰能力强。 ③126个可选的频道,满足多点通信和调频通信的需要。 ④内置CRC检错和点对多点的通信地址控制。 ⑤可设置自动应答,确保数据可靠传输。 淘宝店铺: 技术论坛:

7 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-NRF24L01模块介绍 我们采用深圳云佳科技生产的NRF24L01模块为例,给大家讲解。模块外形图,如又图所示: CE:模式控制线。在 CSN为低的 情况下,CE 协同CONFIG 寄存器 共同决定NRF24L01 的状态(参照 NRF24L01 的状态机) CSN:SPI片选线 SCK:SPI时钟线 MOSI:SPI数据线(主机输出,从机输入) MISO:SPI数据线(主机输入,从机输出) IRQ:中断信号线。中断时变为低电平,在以下三种情况变低:Tx FIFO 发完并且收到ACK(使能ACK情况下)、Rx FIFO 收到数据、达到最大重发次数。 淘宝店铺: 技术论坛:

8 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-SPI时序 空闲状态SCK为0,CPOL=0;数据在时钟第一个时间边沿采集,CPHA=0; Cn:SPI命令位 Sn:STATUS寄存器位 Dn:数据位( MSB,多字节传输时,低字节在前) 淘宝店铺: 技术论坛:

9 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-工作模式介绍 NRF24L01的工作模式,由CE和CONFIG寄存器(0X00)的PWR_UP(第1位)和PRIM_RX(第0位)位共同控制: NRF24L01所处模式 PWR_UP位状态 PRIM_RX 位状态 CE引脚电平 FIFO 寄存器状态 接收模式 1 - 发送模式 数据在TX FIFO 寄存器中 1→0 停留在发送模式,直至发送完 待机模式II TX FIFO 为空 待机模式I 无数据传输 掉电模式 其中,收发模式又有: Enhanced ShockBurstTM收发模式和ShockBurstTM收发模式,只有Enhanced ShockBurstTM收发模式支持自动ACK和自动重发。开启自动ACK,则默认选择Enhanced模式 淘宝店铺: 技术论坛:

10 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-工作模式介绍 Enhanced ShockBurstTM模式介绍 Enhanced ShockBurstTM收发模式,使用片内的先入先出堆栈区,数据可以低速从微控制器送入,但高速(1Mbps/2Mbps)发射,这样可以尽量节能。与射频协议相关的所有高速信号处理都在片内进行,这种做法有大好处: 1,节能; 2,低的系统费用(低速微处理器也能进行高速射频发射); 3,数据在空中停留时间短,抗干扰性高; 在Enhanced ShockBurstTM收发模式下, NRF24L01自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在发送数据时,自动加上字头和CRC校验码,在发送模式下,置CE为高,至少10us,将使能发送过程。 淘宝店铺: 技术论坛:

11 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-工作模式介绍 Enhanced ShockBurstTM模式介绍 Enhanced ShockBurst TM 模式:发送方要求终端设备在接收到数据后有应答信号,以便发送方检测有无数据丢失,一旦丢失则重发数据。重发数据设置在地址为 0X04 的数据重发设置寄存器 用于设置其重发次数及设置在未收到应答信号后等待重发的时间。 在接收模式下,最多可以接收6路不通的数据。每一个数据通道使用不同的地址,但是共用相同的频道。也就是说6 个不同的NRF24L01 设置为发送模式后可以与同一个设置为接收模式的NRF24L01 进行通讯,而设置为接收模式的NRF24L01可以对这6 个发射端进行识别。数据通道0 是唯一的一个可以配置为40 位自身地址的数据通道。1~5 数据通道都为8 位自身地址和32 位公用地址(由通道1设置)。所有的数据通道都可以设置为Enhanced ShockBurst 模式。 淘宝店铺: 技术论坛:

12 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-工作模式介绍 Enhanced ShockBurstTM模式介绍 在接收端,确认收到数据后记录地址,并以此地址为目标地址发送应答信号。 在发送端,通道0被用作接收应答信号,因此通道0的接收地址要与发送地址端地址相等,以确保接收到正确的应答信号。 淘宝店铺: 技术论坛:

13 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-工作模式介绍 Enhanced ShockBurstTM发送流程 1. 把地址和要发送的数据按时序送入NRF24L01; 2. 配置CONFIG寄存器,使之进入发送模式; 3. 微控制器把CE置高(至少10us),激发Enhanced ShockBurstTM发射; 4. Enhanced ShockBurstTM发射:① 给射频前端供电;②射频数据打包(加字头、CRC校验码); ③ 高速发射数据包; ④发射完成,NRF24L01进入空闲状态。 淘宝店铺: 技术论坛:

14 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-工作模式介绍 Enhanced ShockBurstTM发送模式初始化 1)写Tx 节点的地址 TX_ADDR 2)写Rx 节点的地址(主要是为了使能Auto Ack) RX_ADDR_P0 3)使能AUTO ACK EN_AA 4)使能PIPE 0 EN_RXADDR 5)配置自动重发次数 SETUP_RETR 6)选择通信频率 RF_CH 7)配置发射参数(低噪放大器增益、发射功率、无线速率) RF_SETUP 8)配置24L01 的基本参数以及切换工作模式 CONFIG。 频率计算公式:2400+RF_CH (Mhz) 淘宝店铺: 技术论坛:

15 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-工作模式介绍 Enhanced ShockBurstTM接收流程 1. 配置接收地址和要接收的数据包大小; 2. 配置CONFIG寄存器,使之进入接收模式,把CE置高。 3. 130us后,NRF24L01进入监视状态,等待数据包的到来; 4. 当接收到正确的数据包(正确的地址和CRC校验码),NRF2401自动把字头、地址和CRC校验位移去; 5. NRF24L01通过把STATUS寄存器的RX_DR置位(STATUS一般引起微控制器中断)通知微控制器; 6. 微控制器把数据从FIFO读出(0X61指令); 7. 所有数据读取完毕后,可以清除STATUS寄存器。NRF2401可以进入 四种主要的模式之一; 淘宝店铺: 技术论坛:

16 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-工作模式介绍 Enhanced ShockBurstTM接收模式初始化 1)写Rx 节点的地址 RX_ADDR_P0 2)使能AUTO ACK EN_AA 3)使能PIPE 0 EN_RXADDR 4)选择通信频率 RF_CH 5)选择通道0 有效数据宽度 RX_PW_P0 6)配置发射参数(低噪放大器增益、发射功率、无线速率) RF_SETUP 7)配置24L01 的基本参数以及切换工作模式 CONFIG。 淘宝店铺: 技术论坛:

17 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-SPI指令 SPI指令 指令名称 指令格式 操作 R_REGISTER 000A AAAA 读寄存器。AAAAA为要读取的寄存器地址 W_REGISTER 001A AAAA 写寄存器。AAAAA为要写入的寄存器地址 R_RX_PAYLOAD 读RX有效数据,1~32字节。读操作从字节0开始,当读RX有效数据完成后,FIFO寄存器中的使有效数据将被清除。接收模式下用。 W_TX_PAYLOAD 写TX有效数据,1~32字节。写操作从字节0开始。 发送模式下用。 FLUSH_TX 清除TX FIFO寄存器。发送模式下用。 FLUSH_RX 清除RX FIFO寄存器。接收模式下用。 在nrf24l01.h定义的SPI操作指令 淘宝店铺: 技术论坛:

18 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-寄存器介绍 配置寄存器(CONFIG,0X00) 地址 参数 复位值 类型 描述 0X00 CONFIG 配置寄存器 Reserved 7 R/W 保留位 MASK_RX_DR 6 可屏蔽中断RX_RD 1:IRQ引脚不输出RX_RD中断 0:RX_RD中断时,IRQ输出低电平 MASK_TX_DS 5 可屏蔽中断TX_DS 1:IRQ引脚不输出TX_DS中断 0:TX_DS中断时,IRQ输出低电平 MASK_MAX_RT 4 可屏蔽中断MAX_RT 1:IRQ引脚不输出MAX_RT中断 0:MAX_RT中断时,IRQ输出低电平 EN_CRC 3 1 CRC使能。如果EN_AA中任意一位设置为高,则EN_CRC强迫为高 CRCO 2 CRC模式。0:8位CRC;1:16位CRC; PWR_UP 1:上电 :掉电 PRIM_RX 1:接受模式 0:发送模式 淘宝店铺: 技术论坛:

19 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-寄存器介绍 自动应答使能寄存器(EN_AA,0X01) 地址 参数 复位值 类型 描述 0X01 EN_AA 自动应答使能存器 同时可以使能Enhanced模式 Reserved 7:6 00 R/W 保留位 ENAA_P5 5 1 数据通道5,自动应答允许 ENAA_P4 4 数据通道4,自动应答允许 ENAA_P3 3 数据通道3,自动应答允许 ENAA_P2 2 数据通道2,自动应答允许 ENAA_P1 数据通道1,自动应答允许 ENAA_P0 数据通道0,自动应答允许 淘宝店铺: 技术论坛:

20 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-寄存器介绍 RX地址使能寄存器(EN_RXADDR,0X02) 地址 参数 复位值 类型 描述 0X02 EN_RXADDR RX地址使能寄存器 Reserved 7:6 00 R/W 保留位 ERX_P5 5 数据接收通道5使能 ERX_P4 4 数据接收通道4使能 ERX_P3 3 数据接收通道3使能 ERX_P2 2 数据接收通道2使能 ERX_P1 1 数据接收通道1使能 ERX_P0 数据接收通道0使能 淘宝店铺: 技术论坛:

21 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-寄存器介绍 自动重发设置寄存器(SETUP_RETR,0X04) 地址 参数 复位值 类型 描述 0X04 SETUP_RETR 自动重发设置寄存器 ARD 7:4 0000 R/W 自动重发延时: 0000~111186us+250*(ARD+1)us ARC 3:0 自动重发计数: 0000~1111自动重发次数。0代表禁止。 淘宝店铺: 技术论坛:

22 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-寄存器介绍 射频频率设置寄存器(RF_CH,0X05) 地址 参数 复位值 类型 描述 0X05 RF_CH 射频频率设置寄存器 Reserved 7 R/W 保留位 6:0 0~125,设置NRF24L01的射频频率 频率计算公式:2400+RF_CH (Mhz) 淘宝店铺: 技术论坛:

23 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-寄存器介绍 射频配置寄存器(RF_SETUP,0X06) 地址 参数 复位值 类型 描述 0X06 RF_SETUP 射频配置寄存器 CONT_WAVE 7 R/W 使能连续载波发送 Reserved 6 保留位 RF_DR_LOW 5 射频数据速率设置低位;1:250Kbps PLL_LOCK 4 PLL_LOCK允许,仅用于测试模式 RF_DR_HIGH 3 射频数据速率设置高位,同低位一起设置速率: [RF_DR_HIGH,RF_DR_LOW] 00:1Mbps 10:2Mbps 01:250Kbps 11:保留 RF_PWR 2:1 11 设置射频输出功率: 00:-18dBm 01:-12dBm 10:- 6dBm 11: 0dBm Obsolete 1 无需关心 淘宝店铺: 技术论坛:

24 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-寄存器介绍 状态寄存器(STATUS,0X07) 地址 参数 复位值 类型 描述 0X07 STATUS 状态寄存器 Reserved 7 R/W 保留位 RX_DR 6 接收数据标志,收到数据后置1,。写1清零。 TX_DS 5 数据发送完成标志,如果工作在自动应答模式,则必须收到ACK才会置1。写1清零。 MAX_RT 4 达到最大重发次数标志。写1清零。 RX_P_NO 3:1 111 接收数据通道: 000~101:数据通道号 110:未使用 111:RX_FIFO寄存器空 TX_FULL 1 TX FIFO寄存器满标志。 1:TX FIFO寄存器满 0:TX FIFO寄存器未满 淘宝店铺: 技术论坛:

25 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-寄存器介绍 数据通道0接收地址寄存器(RX_ADDR_P0,0X0A) 地址 参数 复位值 类型 描述 0X0A RX_ADDR_P0 数据通道0接收地址设置寄存器 39:0 0XE7E7E7E7E7 R/W 数据通道0接收地址设置寄存器,最大长度:5个字节,由SETUP_AW(0X03)寄存器控制地址长度(默认是5字节) 类似的,还有通道1~5接收地址设置寄存器:RX_ADDR_P1~5,不过P1~P5共用32位高位地址,由P1设置,P2~P4只可以设置8位地址(低8位)。 淘宝店铺: 技术论坛:

26 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-寄存器介绍 发送地址设置寄存器(TX_ADDR,0X10) 地址 参数 复位值 类型 描述 0X10 TX_ADDR 发送地址设置寄存器 39:0 0XE7E7E7E7E7 R/W 发送地址设置(先写低字节)。在Enhanced模式下,RX_ADDR_P0的地址与此地址相等。 淘宝店铺: 技术论坛:

27 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
1、NRF24L01简介-寄存器介绍 接收通道0有效数据宽度设置寄存器(RX_PW_P0,0X11) 地址 参数 复位值 类型 描述 0X11 RX_PW_P0 数据通道0有效数据宽度设置寄存器 Reserved 7:6 00 R/W 保留位 5:0 数据通道0,接收区有效数据宽度: 0:非法 1~32:1~32字节 类似的,还有通道1~5有效数据宽度设置寄存器:RX_PW_P1~5,对应通道1~通道5的接收有效数据宽度,方法同RX_PW_P0。 淘宝店铺: 技术论坛:

28 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、硬件连接-探索者STM32F4开发板 探索者STM32F4开发板,通过WIRELESS接口与NRF24L01模块连接,硬件连接原理图如下: NRF24L01与W25Q128共用SPI1,注意要分时复用!! 淘宝店铺: 技术论坛:

29 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、硬件连接-战舰 V3 STM32F1开发板 战舰V3 STM32F103开发板,通过WIRELESS接口与NRF24L01模块连接,硬件连接原理图如下: NRF24L01与W25Q128共用SPI2,注意要分时复用!! 淘宝店铺: 技术论坛:

30 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、硬件连接-精英STM32F1开发板 精英STM32F103开发板,通过WIRELESS接口与NRF24L01模块连接,硬件连接原理图如下: NRF24L01与W25Q128共用SPI2,注意要分时复用!! 淘宝店铺: 技术论坛:

31 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
2、硬件连接-Mini V3 STM32F1开发板 Mini V3 STM32F103开发板,通过NRF24L01接口与NRF24L01模块连接,硬件连接原理图如下: NRF24L01与W25Q64和SD卡共用SPI1,注意要分时复用!! 淘宝店铺: 技术论坛:

32 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
3、源码讲解&例程测试-源码说明 1,Mini V3 STM32F103开发板源码 光盘程序源码标准例程(库函数/寄存器)实验24 无线通信实验 2,精英STM32F103开发板源码 光盘程序源码标准例程(库函数/寄存器)实验31 无线通信实验 3,战舰V3 STM32F103开发板源码 光盘程序源码标准例程(库函数/寄存器)实验33 无线通信实验 4,探索者STM32F407开发板源码 淘宝店铺: 技术论坛:

33 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
3、源码讲解&例程测试-驱动代码 1,NRF24L01_Init函数 2,NRF24L01_TX_Mode函数 3,NRF24L01_TxPacket函数 4,NRF24L01_RX_Mode函数 5,NRF24L01_RxPacket函数 淘宝店铺: 技术论坛:

34 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
3、源码讲解&例程测试-main函数 ALIENTEK各开发板(F1/F4),本例程main函数都大同小异,代码几乎一模一样。 重点以战舰V3 本例程的main函数为例讲解,其他开发板参考着看即可。 淘宝店铺: 技术论坛:

35 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
3、源码讲解&例程测试-例程测试 例程测试 淘宝店铺: 技术论坛:

36 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
谢谢您对“正点原子”团队的支持 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺: 技术论坛: 淘宝店铺: 技术论坛:


Download ppt "《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:"

Similar presentations


Ads by Google