OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5251|回复: 8

哪位老哥可以给我详细的讲解一下这个函数啊 是sx1260中的

[复制链接]

43

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1163
金钱
1163
注册时间
2019-10-22
在线时间
226 小时
发表于 2023-3-20 09:36:34 | 显示全部楼层 |阅读模式
10金钱

ReadRegister(0x06BC,Register_Value,8);

//从寄存器中读取数据
void ReadRegister(uint16_t address, uint8_t *data, uint8_t length)
{
        uint8_t Opcode;
        uint8_t addr_l,addr_h;
        uint8_t i;
       
        if(length<1)                       
                return;
        check_busy();
       
        addr_l = address&0xff;
        addr_h = address>>8;
       
        Opcode = 0x19;
        SPI_NSS_LOW();
        spi_rw(Opcode);
        spi_rw(addr_h);//MSB
        spi_rw(addr_l);//LSB
        for(i=0;i<length;i++)
        {
                data[i]=spi_rw(0xFF);
        }
        SPI_NSS_HIGH();
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4588
金钱
4588
注册时间
2015-1-10
在线时间
574 小时
发表于 2023-3-20 10:00:22 | 显示全部楼层
就SPI传输啊,标准SPI通讯,地址16位
回复

使用道具 举报

43

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1163
金钱
1163
注册时间
2019-10-22
在线时间
226 小时
 楼主| 发表于 2023-3-20 10:09:52 | 显示全部楼层
阿侑kevin 发表于 2023-3-20 10:00
就SPI传输啊,标准SPI通讯,地址16位

spi_rw(0xFF);为什么是0xff啊
回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4588
金钱
4588
注册时间
2015-1-10
在线时间
574 小时
发表于 2023-3-20 10:13:47 | 显示全部楼层
Xiuer666 发表于 2023-3-20 10:09
spi_rw(0xFF);为什么是0xff啊

因为SPI一般是全双工的,你要接收数据的同时需要发送点无关紧要的数据给它,这些数据不会被从机载入,但是在协议上是需要的
回复

使用道具 举报

43

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1163
金钱
1163
注册时间
2019-10-22
在线时间
226 小时
 楼主| 发表于 2023-3-20 10:29:01 | 显示全部楼层
阿侑kevin 发表于 2023-3-20 10:13
因为SPI一般是全双工的,你要接收数据的同时需要发送点无关紧要的数据给它,这些数据不会被从机载入,但 ...

  for(i=0;i<length;i++)
        {
                data=spi_rw(0xFF);
        }
那这个for循环执行完了data就变成从机返回的数据了吗
回复

使用道具 举报

43

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1163
金钱
1163
注册时间
2019-10-22
在线时间
226 小时
 楼主| 发表于 2023-3-20 10:31:08 | 显示全部楼层
阿侑kevin 发表于 2023-3-20 10:13
因为SPI一般是全双工的,你要接收数据的同时需要发送点无关紧要的数据给它,这些数据不会被从机载入,但 ...

if(length<1)                        
                return;
这句话的作用是什么啊?如果长度小于1,返回空跳出这个程序吗?
回复

使用道具 举报

15

主题

313

帖子

0

精华

高级会员

Rank: 4

积分
827
金钱
827
注册时间
2015-2-12
在线时间
346 小时
发表于 2023-3-20 10:40:50 | 显示全部楼层

约束下函数传入参数的合法性,这里要求lenth不得为0
回复

使用道具 举报

43

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1163
金钱
1163
注册时间
2019-10-22
在线时间
226 小时
 楼主| 发表于 2023-3-20 11:54:10 | 显示全部楼层
csmjmcc 发表于 2023-3-20 10:40
约束下函数传入参数的合法性,这里要求lenth不得为0

好的,谢谢老哥
回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4588
金钱
4588
注册时间
2015-1-10
在线时间
574 小时
发表于 2023-3-20 15:52:11 | 显示全部楼层

是的,应该是函数封装了,收发封装成了一个函数,传入发送的内容,返回接收的内容
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 14:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表