搜索
bottom↓
回复: 9

LD3320的SPI模式操作问题

[复制链接]

出0入0汤圆

发表于 2014-12-5 12:06:15 | 显示全部楼层 |阅读模式
这几天在弄这块小东西,X宝买回来的98块钱
例程是并行方式操作的,想着改成串行。
但根据官方资料和各种例程,老是寄存器读错。

有没有人真正用过这个芯片,而且是SPI方式操作的,给个指点。

跪谢了哈。
到时候我这个调好了也把程序放上来。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2014-12-5 13:21:06 | 显示全部楼层
X宝卖家应该知道。正想搞这个片子,不知道识别效果怎么样

出0入0汤圆

 楼主| 发表于 2014-12-5 14:57:30 | 显示全部楼层
X宝卖家也没用过SPI。叫我试试。

出0入0汤圆

 楼主| 发表于 2014-12-8 09:55:44 | 显示全部楼层
上传一下SPI的那一部分。其他的跟官方的大同小异,就不上传了,可以到官方那下载。
注意:LD_A0那一句,那个在官方里面是没有提到的,资料也说那个是并行的。
但是,没那句真的就不行。LZ也是一时脑袋发热试了一下,发现神奇的可以了。


  1. void SPI_WriteByte(unsigned char Data)
  2. {
  3.         unsigned char i;
  4.         LD_A0 = 1;          //这个卡了好几天,没这一句是不行的。资料里面这个是并行的数据和地址选择,串行没用
  5.         for(i=0;i<8;i++)
  6.         {
  7.                 if(Data & 0x80)
  8.                 {
  9.                         LD_SDI = 1;
  10.                 }
  11.                 else LD_SDI = 0;
  12.                 delay();
  13.                 LD_SDCK = 0;
  14.                 delay();
  15.                 Data <<= 1;
  16.                 LD_SDCK = 1;       
  17.         }
  18. }

  19. unsigned char SPI_ReadByte(void)
  20. {
  21.         unsigned char i;
  22.         unsigned char Data = 0;
  23.         LD_A0 = 0;        //SPI也要这一句。我试出来的。        (妈蛋,官方给的SPI驱动资料没有这一句)                                       
  24.         for(i=0;i<8;i++)                  
  25.         {
  26.                 Data <<= 1;
  27.                 if(LD_SDO)
  28.                 {
  29.                         Data |= 0x01;
  30.                 }
  31.                 delay();
  32.                 LD_SDCK = 0;
  33.                 delay();
  34.                 LD_SDCK = 1;
  35.         }
  36.         return Data;
  37. }

  38. void LD3320_Write(unsigned char Addr,unsigned char Data)
  39. {
  40.         unsigned char Com = 0x04;

  41.         LD_SPIS = 0;
  42.         LD_SCS = 0;
  43.         delay();
  44.         SPI_WriteByte(Com);
  45.         SPI_WriteByte(Addr);
  46.         SPI_WriteByte(Data);
  47.         delay();
  48.         LD_SCS = 1;
  49. }


  50. unsigned char LD3320_Read(unsigned char Addr)
  51. {
  52.         unsigned char Com = 0x05;
  53.         unsigned char Data = 0;

  54.         LD_SPIS = 0;
  55.         LD_SCS = 0;
  56.         delay();
  57.         SPI_WriteByte(Com);
  58.         SPI_WriteByte(Addr);
  59.         Data = SPI_ReadByte();
  60.         LD_SCS = 1;
  61.         delay();
  62.         return Data;
  63. }  
复制代码


出0入0汤圆

发表于 2014-12-9 09:07:34 | 显示全部楼层
实测效果如何?
错误率高吗?

出0入0汤圆

 楼主| 发表于 2014-12-9 13:24:45 | 显示全部楼层
ordinary 发表于 2014-12-9 09:07
实测效果如何?
错误率高吗?

四米的距离,测试了几个简单的开关灯。
挺短的词语。还是挺准的。

出0入0汤圆

发表于 2014-12-10 08:33:46 | 显示全部楼层
tianzhiying 发表于 2014-12-9 13:24
四米的距离,测试了几个简单的开关灯。
挺短的词语。还是挺准的。

感谢答复,
这样的灵敏度和距离,做个声控的台灯玩应该没问题了

出0入0汤圆

发表于 2014-12-12 19:53:23 | 显示全部楼层
我也购了一个,在物流中

出0入0汤圆

发表于 2015-2-12 16:04:39 | 显示全部楼层
我看微雪的例程SPI并没有用到A0,也很正常。

出0入0汤圆

 楼主| 发表于 2015-2-12 17:19:57 | 显示全部楼层
alwxkxk 发表于 2015-2-12 16:04
我看微雪的例程SPI并没有用到A0,也很正常。

我也不知道为什么?
我自己试过,没那个就不行。
用别人的电路板试过了,后来自己画板也是。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 10:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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