lugl4313820 发表于 2023-2-4 08:09
建议你买一块开发板,他们会附带教程的。然后你跟着例程写一篇,然后自己再写一篇。先用摸拟的写一篇,再用 ...
您好,我现在在用st的开发板上午看了读写寄存器的内容,明白了我要做的内容,是读写另一个芯片上的9个寄存器,有三个收发通道,通过16位进行读取。0-9可读,0-1-3寄存器可写,标准spi时序,指令+地址+内容。我是这样做的,不知道对不对。还有我想知道逻辑层的调用函数应该怎么写呢?(当我选择不同的通道时,返回16位的读取内容。)还有验证读写是否一致打印函数,应该要怎么去实现呢?很抱歉有些打扰,因为我C语言刚入门,嵌入式也是刚开始,有些地方很迷惑,没有形成流畅的思维吧。//指令集 #define ACPL_Read 0x09 //读取寄存器指令码 #define ACPL_Write 0x0A //写入寄存器指令码 typedef enum {addr_Filter_Setting = 0x00 addr_Channel_Select = 0x01 addr_Interrupt_Status = 0x02 addr_Interrupt_Enable = 0x03 addr_Channel1_MSB = 0x04 addr_Channel1_LSB = 0x05 addr_Channel2_MSB = 0x06 addr_Channel2_LSB = 0x07 addr_Channel3_MSB = 0x08 addr_Channel3_LSB = 0x09 }ACPL_RegisterAddr;/********************************************* * 读取寄存器,0-9可读 * BIT 7 6 5 4 3 2 1 0 *********************************************/u8 ACPL_Read_Value(u8 ACPL_RegisterAddr){ u16 temp = 0; SPI_FlASH_CS_LOW(); //使能片选信号,开始操作 SPI5_ReadWriteByte(ACPL_Read|ACPL_RegisterAddr); //写入cmd+地址 temp|=SPI5_ReadWriteByte(0Xff); temp