搜索
bottom↓
回复: 3

求R8C/1B R5F211B4 SPI的例程

[复制链接]

出0入0汤圆

发表于 2012-7-31 15:02:10 | 显示全部楼层 |阅读模式
最近在用R5F211B4的SPI,搞了好几天都没有效果,谁能给一段参考代码,让我看看哪里出了问题,谢谢。

出0入0汤圆

 楼主| 发表于 2012-7-31 23:09:33 | 显示全部楼层
现在用软件模拟了个SPI,先凑合用了,硬件的SPI怎么调都没有反应,硬件的SPI有人用过吗?

出0入0汤圆

发表于 2012-9-20 09:16:52 | 显示全部楼层
例程能共享下不楼主?教我软件调试下....初学者很多都不懂!我的扣扣是994881821

出0入0汤圆

 楼主| 发表于 2012-9-26 12:20:03 | 显示全部楼层
小混hun 发表于 2012-9-20 09:16
例程能共享下不楼主?教我软件调试下....初学者很多都不懂!我的扣扣是994881821 ...
  1. /*****************************************
  2. 功能描述:SPI指定地址写1字节数据
  3. 参    数:uchar add     目标地址
  4.                   uchar data        数据
  5. 返 回 值:无
  6. *****************************************/
  7. void SpiWriteAddressData(uchar add, uchar data)
  8. {
  9.     unsigned char i;
  10.     nSET_CLR;
  11.     add = add | 0x80;          //写操作
  12.     for(i=0;i<8;i++)           //先写地址
  13.     {
  14.         if((add&0x80)==0x80)
  15.             SDI_SET; //DIN=1
  16.         else
  17.             SDI_CLR; //DIN=0
  18.         DelayUs(1);
  19.         SCLK_SET;    //CLK=1
  20.         DelayUs(2);
  21.         SCLK_CLR;    //CLK=0
  22.         add = add << 1;
  23.         DelayUs(1);  
  24.     }
  25.     for(i=0;i<8;i++)           //再写数据
  26.     {
  27.         if((data&0x80)==0x80)
  28.             SDI_SET; //DIN=1
  29.         else
  30.             SDI_CLR; //DIN=0
  31.         DelayUs(1);
  32.         SCLK_SET;    //CLK=1
  33.         DelayUs(2);
  34.         SCLK_CLR;    //CLK=0
  35.         data = data << 1;
  36.         DelayUs(1);  
  37.     }
  38.     nSET_SET;
  39. }
  40. /*****************************************
  41. 功能描述:SPI指定地址读1字节数据
  42. 参    数:uchar add     目标地址
  43. 返 回 值:指定地址数据
  44. *****************************************/
  45. uchar SpiReadAddressData(uchar add)
  46. {
  47.     unsigned char i,data;
  48.     nSET_CLR;
  49.     add = add & 0x7f;          //读操作
  50.     for(i=0;i<8;i++)           //先写地址
  51.     {
  52.         if((add&0x80)==0x80)
  53.             SDI_SET; //DIN=1
  54.         else
  55.             SDI_CLR; //DIN=0
  56.         DelayUs(1);
  57.         SCLK_SET;    //CLK=1
  58.         DelayUs(2);
  59.         SCLK_CLR;    //CLK=0
  60.         add = add << 1;
  61.         DelayUs(1);  
  62.     }
  63.     data = 0;
  64.     for(i=0;i<8;i++)           //再写数据
  65.     {
  66.         DelayUs(1);
  67.         data = data << 1;
  68.         SCLK_SET; //CLK=1
  69.         DelayUs(2);
  70.         if(SDO_H)
  71.             data++;
  72.         DelayUs(1);
  73.         SCLK_CLR; //CLK=0
  74.         DelayUs(1);
  75.     }  
  76.     nSET_SET;
  77.     return (data);
  78. }
复制代码
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-7 06:52

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

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