当前位置: 首页 > article >正文

stm32完全学习——NRF24L01模块

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

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

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

/*
* 函数名: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;
}


http://www.kler.cn/a/594478.html

相关文章:

  • 微服务》》Kubernetes (K8S) 集群 安装
  • 界面控件DevExpress WinForms v25.1预览 - 提升.NET开发效率
  • SpringAOP 切面类添加@RefreshScope导致逻辑执行两遍原因
  • SQL 中 WHERE 与 HAVING 子句的使用
  • STM32工程模板及文件作用
  • HarmonyOS开发,防截屏防录屏的api介绍及功能实现
  • 24.策略模式实现日志
  • 在Ubuntu上安装MEAN Stack的4个步骤
  • 第五: redis 安装 / find 查找目录
  • 【Go 】异常处理
  • 网络空间安全(36)数据库权限提升获取webshell思路总结
  • 【模拟面试】计算机考研复试集训(第七天)
  • Jvm运行时数据区有哪些
  • ubuntu升级后网卡不可用,提示*-network UNCLAIMED
  • 【redis】在 Spring中操作 Redis
  • docker学习整理
  • 早餐 3.20
  • AI时代,谁能拯救后端开发
  • AI时代API安全挑战加剧,解读API防护的最佳方案
  • sqli-labs学习笔记