stm32完全学习——NRF24L01模块

对于这个模块的移植,无论是标准库还是HAL库,无论是软件模拟SPI还是,硬件SPI通信,网上都有很多的例子,这里关于移植的事情就不再赘述了。

一、调试中遇到的一些问题

我是用的别人的代码进行移植的,使用的是软件模拟SPI时序,在进行通信的时候,可以正确检测到NRF24L01的存在,但是发送数据和接收数据都不能成功的运行,本来以为是发送的时候数据包设置的不正确,后来发现他的代码里面使用软件SPI里面的延时函数是他自己定义的,我当时直接用我的延时函数替换了,后来我将延时函数改成了15微秒,接收和发送都可以正常工作。

cpp 复制代码
/*
* 函数名:uint8_t SPI_WriteReadByte(uint8_t data)
* 输入参数:data -> 要写的一个字节数据
* 输出参数:无
* 返回值:读到的数据
* 函数作用:模拟 SPI 读写一个字节
*/
uint8_t SPI_WriteReadByte(uint8_t data)
{
	uint8_t i = 0;
	uint8_t temp = 0;
	uint8_t read_data = 0xFF;
	for (i=0; i<8; i++) 
	{
		temp = ((data & 0x80) == 0x80)? 1:0;
		data = data<<1;
		read_data = read_data<<1;
		_SCK_ = 0;
		_MOSI_ = temp;
		delay_us(15);
		_SCK_ = 1;
		delay_us(15);
		if(_MISO_ == 1) 
		{
			read_data = read_data + 1; 
		} 
	}
	_SCK_ = 0;
	return read_data;
}
相关推荐
chools7 小时前
【AI超级智能体】快速搞懂工具调用Tool Calling 和 MCP协议
java·人工智能·学习·ai
自信150413057597 小时前
重生之从0开始学习c++之模板初级
c++·学习
笨笨饿7 小时前
#58_万能函数的构造方法:ReLU函数
数据结构·人工智能·stm32·单片机·硬件工程·学习方法
nashane7 小时前
HarmonyOS 6学习:解决异步场景下Toast提示框无法弹出的UI上下文丢失问题
学习·ui·harmonyos·harmony app
码喽7号10 小时前
Vue学习七:MockJs前端数据模拟
前端·vue.js·学习
三品吉他手会点灯11 小时前
STM32F103 学习笔记-21-串口通信(第4节)—串口发送和接收代码讲解(中)
笔记·stm32·单片机·嵌入式硬件·学习
EnglishJun13 小时前
ARM嵌入式学习(二十三)--- I2C总线和SPI总线
arm开发·学习
饭后一颗花生米13 小时前
2026 AI加持下前端学习路线:从入门到进阶,高效突破核心竞争力
前端·人工智能·学习
北山有鸟13 小时前
【学习笔记】MIPI CSI-2 协议全解析:从底层封包到像素解析
linux·驱动开发·笔记·学习·相机
项目題供诗13 小时前
STM32-LED闪烁&LED流水灯&蜂鸣器(四)
stm32·单片机·嵌入式硬件