• 等级
  • 13393 访问
  • 11 原创
  • 0 转发
  • 328109 排名
  • 4 评论
  • 9 获赞

NRF24L01+中文翻译连载之四——附录与测试记录

3.4附录A-增强型ShockBurst™-配置和通信示例3.4.1增强ShockBurst™传输有效载荷将配置位PRIM_RX设置为低电平。当应用MCU有数据要发送时,通过SPI锁定接收节点地址(TX_ADDR)和加载有效负载数据(TX_PLD)到nRF24L01+中。发送有效载荷的长度是通过MCU写入TXFIFO的字节数计算出来的。**保持CSN为低电平时,TX_...

2019-02-18 22:10:15

NRF24L01+中文翻译连载之三——数据和控制接口

3.3数据和控制接口数据和控制界面使您可以访问nRF24L01+中的所有功能。数据和控制接口由以下六个5V容差数字信号组成:•IRQ(该信号低电平有效并由三个可屏蔽中断源控制)•CE(该信号高电平有效,用于在RX或TX模式下激活芯片)•CSN(SPI信号)•SCK(SPI信号)•MOSI(SPI信号)•MISO(SPI信号)使用1字节SPI命令,您可以在所有操作模式下激活nR...

2019-02-18 21:51:08

NRF24L01+中文翻译连载之二——增强ShockBurst™

3.2增强ShockBurst™强化的ShockBurst™是基于分组的数据链路层,其具有自动包组件和定时,自动确认和数据包的重传。增强型ShockBurst™可实现与低成本主机微控制器的超低功耗和高性能通信。增强型ShockBurst™功能可显着提高双向和单向系统的功率效率,而不会增加主机控制器端的复杂性。3.2.1特性EnhancedShockBurst™的主要特点是:•1到...

2019-02-18 21:32:29

STM32调试利器之ITM

折腾了许久,终于把ITM调试搞定了。首先看看效果图:是的,你没有看错,以上所有的窗口都是由MDK支持的。这也是为什么我执着于ITM调试的原因了,因为这种调试手段实在是太方便了啊。相信很多朋友在开发的过程中都会遇到不少的BUG,那么如何定位BUG就成了关键。早期的时候,很多人习惯用printf函数进行开发调试,我也不例外,一直以来我都是把ST-LINK当成一个下载工具。但是当我知道了...

2019-02-02 09:41:32

C语言之#error/#warning

很多人写了一两年代码可能也没用过#error和#warning吧!我也是如此,因为我之前也不知道C语言中还有这玩意的存在,还是在看别人的代码后才知道有这个东西的。但是事实上你在编译代码的时候它们经常会在你的眼前晃悠,只是你不知道这些东西其实程序员也可以输出来的。看图你就知道了:是不是很亲切啊!对咯,就是编译窗口下面的错误警告信息。你会想,这不是编译器的事情吗?关我们程序员什么事。当然是有用...

2018-12-10 12:17:17

C语言中之const

const:限定一个变量不允许改变,产生静态作用,const在一定程度上可以提高程序的安全性和可靠性。const推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。宏定义:#definexxxx\{xxx}\\后不能有任何字符,包括空格最后的“}\”需要最少空一行structxxxxxxx={.x1=xxxxx,.x2=xxxxx,....

2018-12-07 20:43:57

STM32固件升级详解(BootLoader)

基础知识这里以KEIL开发环境和STM32F103RET6为例。上电时单片机首先进入复位中断Reset_Handler,即汇编文件的复位中断处理函数。并且有一个中断向量表默认存在于flash地址开始处。为什么说是默认呢?这是因为如果没有特殊要求的话很少会去改中断向量表。实际上这个中断向量表是可以更改的。但是在更改向量表之前必须在地址开始处建立一个向量表,因为在复位后,程序默认(硬件决定...

2018-12-02 21:33:13

NRF24L01+中文翻译连载之一——无线电控制

----------------------------------------------------------------详情请看英文技术手册2018/05/06nRF24L01+是一款带有嵌入式基带协议引擎(EnhancedShockBurst™)的单芯片2.4GHz收发器,适用于超低功耗无线应用。nRF24L01+设计用于2.400-2.4835GHz的全球ISM频段。要用n...

2018-12-01 16:55:08

信号量保护

让我们举个例子。记DeviceALocked是一个位于内存中的R/W变量,用于指示设备A是否已经在使用中。任何一个任务,若欲使用设备A,都必须先检查这个变量的值。如果它的值为零,则表示设备可以使用。在任务获取到设备A后,它要把DeviceALocked的值改为1,表示设备A已经被占用。在设备A使用完毕后,该任务通过重新清零DeviceALocked来释放设备A,从而使其它任务可以使用此设备。看起...

2018-11-28 20:55:26

uCOS II 之任务控制块TCB

任务控制块TCB:OS_EXTOS_TCB*OSTCBCur;OS_EXTOS_TCB*OSTCBFreeList;OS_EXTOS_TCB*OSTCBHighRdy;OS_EXTOS_TCB*OSTCBList;OS_EXTOS_TCB*OSTCBPrioTbl[OS_LOWEST_PRIO+1u];OS_EXTOS_TCBOST...

2018-11-28 20:48:41

uCOS II 之查找最高优先级任务

我们知道在u/COSII中,一个任务只有一个优先级,并且这个优先级在整个系统是唯一的,也就是一个任务也是对应一个优先级。优先级即任务,任务即优先级。我们只需通过优先级就可以找到所有和该任务相关的资源。现在问题是就绪表中有那么多任务处于就绪态,如何从中找到其中最高优先级。方法有很多,其中一个就是for循环找优先级,遍历所有就绪表,从中找到最高优先级,但这里有一个问题,如果就绪表中处于就绪的这个优先...

2018-11-28 20:47:27

EmbeddedOsprey

主攻方向:STM32软件开发,主要开发平台KEIL
关注
  • 电子·微电子/嵌入式软件工程师
  • 中国 江西省 赣州市
奖章
  • 持之以恒