找回密码
 立即注册
查看: 325|回复: 7

8H1k08三线spi无法通讯ci24R1

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:41
  • 最近打卡:2025-04-12 15:59:55

10

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2024-9-11 01:03:51 来自手机 | 显示全部楼层 |阅读模式
网上示例程序比较少,自己写的死活通不上,读一个寄存器显示在oled上,不是255就是0,试过在指令之间加一us延时也不行
麻烦各位大佬看一下什么问题,谢谢!
mcu27Mhz,ci24R1最快10Mhz
csn,sck是推挽输出,data是准双向口,开启了输入

主程序,只是读一个寄存器的值
初始化oled ,gpio
unsigned char b;
        ci24_csn=1;
        ci24_sck=0;
        ci24_data=1;
        while(1)
        {
                ci24_csn=0;
        b = my_ci24_spi_Rbit(0x07);
                ci24_csn=1;
.....oled显示b
}
子函数
void my_ci24_spi_W(unsigned char spi_data)
{
        unsigned char i;
        for(i=0;i<8;i++)
                {
                ci24_data=(spi_data&(0x80>>i));
                ci24_sck=1;
                ci24_sck=0;
                }
}

unsigned char my_ci24_spi_R(void)
{
        unsigned char i,spi_data=0x00;
试过在这里把ci24_data改成0或者1都不行
        for(i=0;i<8;i++)
                {       
                ci24_sck=1;
                if(ci24_data==1){spi_data|=(0x80>>i);}
                ci24_sck=0;
                }
        return spi_data;
}

unsigned char my_ci24_spi_Rbit(unsigned char control)
{
        unsigned char databit=0x00;
        my_ci24_spi_W(control);
        databit=my_ci24_spi_R();
        return databit;
}
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:504
  • 最近打卡:2025-05-03 07:29:10
已绑定手机

1

主题

836

回帖

1455

积分

金牌会员

积分
1455
发表于 2024-9-11 08:01:14 | 显示全部楼层
有逻辑分析仪么,可以用那个看下,比较直观
靡不有初,鲜克有终
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:299
  • 最近打卡:2025-05-03 08:05:19
已绑定手机

4

主题

339

回帖

1566

积分

金牌会员

积分
1566
发表于 2024-9-11 09:29:00 | 显示全部楼层
2.4G无线模块吗???
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:41
  • 最近打卡:2025-04-12 15:59:55

10

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2024-9-11 12:43:48 | 显示全部楼层
haiya*** 发表于 2024-9-11 09:29
2.4G无线模块吗???

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:41
  • 最近打卡:2025-04-12 15:59:55

10

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2024-9-11 12:44:56 | 显示全部楼层
小涵*** 发表于 2024-9-11 08:01
有逻辑分析仪么,可以用那个看下,比较直观

主要就是没有,我现在都感觉芯片是假的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-04 00:16:27
已绑定手机

19

主题

3191

回帖

4930

积分

论坛元老

积分
4930
发表于 2024-9-11 12:51:09 来自手机 | 显示全部楼层
有例程吗?有可以根据情况修改,看下效果
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:41
  • 最近打卡:2025-04-12 15:59:55

10

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2024-9-11 13:19:02 | 显示全部楼层
so*** 发表于 2024-9-11 12:51
有例程吗?有可以根据情况修改,看下效果

其他例子都是别的单片机的, 我按照他们的逻辑写spi底层也通讯不上

他们在读的时候设置了data线为输入线,  
stc我是设置了准双向口开启了输入

我去试试直接切换io口模式试试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:41
  • 最近打卡:2025-04-12 15:59:55

10

主题

17

回帖

74

积分

注册会员

积分
74
发表于 2024-9-11 13:46:43 | 显示全部楼层
本帖最后由 tailimo 于 2024-9-11 14:28 编辑

解决了, 面包板有问题,电路是通的对的 ,但就是通讯不上(但是之前通讯nrf24l01正常), (可能是这个芯片电气性能比较弱一点点干扰都不行)    换了一个面包板就好了,
  程序也动了,

                ci24_csn=0;
                my_ci24_spi_Wbit(0x20,0x0e);
                ci24_csn=1;

               
               
                ci24_csn=0;               
                b = my_ci24_spi_Rbit(0x00);
                ci24_csn=1;
完整指令前后需要改变csn状态 这样才行
然后   读 需要把data置1 解除控制               

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 05:59 , Processed in 0.111052 second(s), 93 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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