SPI读操作码0x80说明 lSPI_SendByte(addr|0x80);
再来贴一次,SPI在读写某芯片【芯片不同可能有差异】寄存器地址的时候,一般都会进行addr|0x80,实际上0x80是一个操作码。相当于把最高位置1,群里有人说也是定位作用。
sx1278的读写时序图:
/************************************************************************** * 函数名:SPI_SendByte * 描述 :SPI模块发送函数 * 输入 :发送数据 * 返回 :返回数据 *************************************************************************/ u8 SPI_SendByte(u8 byte) { u8 i = 0; u8 bit_r = 0; for(i=0;i<8;i++) // output 8-bit { //MOSI_PIN=byte & 0x80; //output 'byte' MSB to MOSI_PIN if(byte & 0x80) //判断最高位是否为1 MOSI_H; else MOSI_L; byte <<= 1; // shift next bit into MSB.. SCLK_H; bit_r<<=1; if(MISO_G) bit_r++; SCLK_L; //SCK_PIN=1 ; // Set SCK_PIN high.. //byte|=MISO_PIN; // capture current MISO_PIN bit //SCK_PIN=0; // then set SCK_PIN low again } return(bit_r); // return read byte } /************************************************************************** * 函数名:SPI_ReadRegister * 描述 :SPI读取寄存器数值 * 输入 :寄存器地址 * 返回 :数据 *************************************************************************/ u8 SPI_ReadRegister (u8 addr) { u8 Result; CS_L; //nSEL = 0; SPI_SendByte(addr); //write data into the SPI register Result = SPI_SendByte(0xFF); //0XFF其实就是伪字节 CS_H; //nSEL = 1; return(Result); } /************************************************************************** * 函数名:SPI_WriteRegister * 描述 :SPI写寄存器数值 * 输入 :寄存器地址,数值 * 返回 :无 *************************************************************************/ void SPI_WriteRegister (u8 addr, u8 value) { CS_L; //nSEL = 1; SPI_SendByte(addr|0x80); //0X80 spi的最高位是一般协议定位命令位,是读数据或写数据标识
SPI_SendByte(value); CS_H; //nSEL = 1; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决