• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

网上没有教我怎么弄SCLK的~~ 以下是网上找的代码,求大

mmnn 2017-03-23 浏览量:715

 

 网上没有教我怎么弄SCLK的~~ 以下是网上找的代码,求大神指点一2

 uint8_t sd_spi_trans(uint8_t sdByte)
{
uint8_t i, rcvByte = 0;
sd_clk_lo;
spi_delay(1);
for(i = 0; i < 8; i++)
{
if(sdByte & 0x80)
sd_mosi_hi;
else 
sd_mosi_lo;
sdByte <<= 1;
sd_clk_hi;
spi_delay(1);
rcvByte <<= 1;
if(sd_miso_is_hi)
rcvByte++;
sd_clk_lo;
spi_delay(1);
}
return rcvByte;
}

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
其他答案 数量:5
  • SCLK是时钟脚,模拟SPI的话在发送完一个bit之后变化一下电平就行了。
    • 发布于2017-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • sd_clk_lo和sd_clk_hi还有sd_mosi_lo和​sd_mosi_hi​,都是宏定义的,查看代码前面宏的定义

    • 发布于2017-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 您好,MOSI是用在Slave是Input時候的訊號線,反之MISO則是Slave是Output的訊號線

    SCLK控制兩邊的Shift Register,是全雙工機制

    不知道您要問什麼,因為這段函數裡面都有包含模擬SPI的MOSI/MISO和SCLK操作

    sd_clk_lo;
    sd_clk_hi;
    sd_mosi_hi;
    sd_mosi_lo;
    sd_miso_is_hi;
    和
    spi_delay

    如果都有定義好的話應該就沒問題了,可以正常使用才對

    以上供參考


    • 发布于2017-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • spi的通信协议自己看一下,根据通信协议的时序图来写程序就好,然后就是用库函数了


    • 发布于2017-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  •  这段代码调用了SPI的通信库,需要去那个库里面查一下相关变量的意思
    • 发布于2017-03-23
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

网上没有教我怎么弄SCLK的~~ 以下是网上找的代码,求大