OpenEdv-开源电子网

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

分享一下GPIO模拟 SPI时序例子,测试没问题能读ID

[复制链接]

3

主题

10

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2019-11-26
在线时间
9 小时
发表于 2020-4-25 19:10:33 | 显示全部楼层 |阅读模式
u8 SPIx_FLASH_SendByte(u8 byte)
{
        uint8_t i;
       u8 Temp=0x00;
       unsigned char SDI;
        //SPI_CS_L;
        myDelay_us(40);//
       for (i = 0; i < 8; i++)
      {
                   SPI_SCLK_L;       
                if (byte&0x80)
                           SPI_MOSI_H;
                else
                     SPI_MOSI_L;            
                 byte <<= 1;  
                myDelay_us(40);
                   SPI_SCLK_H;                
                Temp<<=1;   
                if(SPI_MISO)
                        Temp|=1;
                myDelay_us(40);//
          }
          SPI_SCLK_H; //à-&#184;&#223; SPI_SCK
        //SPI_CS_H;
        return Temp;   
}

// cpol=1  cpha=1 其他的就是一个时序问题。
这里面唯一要注意的是 千万不要在 这函数中去操作片选。因为很多SPI 在连着写命令和读取数据时 是连续的 ,片选也一直是低。所以不能在单独读写一个字节的时候 去操作片选,我尝试在进入之前拉低片选,结束时拉高,但是这样读不到数据。共勉吧。我也是被这小问题 折磨了一天。

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

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2019-8-4
在线时间
10 小时
发表于 2020-4-26 13:48:58 | 显示全部楼层
在接收spi里面操作cs没问题吧。
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2019-11-26
在线时间
9 小时
 楼主| 发表于 2020-4-26 14:38:37 | 显示全部楼层
zhangjianhu10 发表于 2020-4-26 13:48
在接收spi里面操作cs没问题吧。

我这个工程里面确实不行。如果是单纯写8个字节。或者说数据 指令长度只有8个字节。肯定就没问题。假如对命令8个字节 接着还要发送24位地址的,再读出8个字节的数据的。这个我就不太清楚了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-2 02:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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