找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1640|回复: 5
收起左侧

如STM32芯片的sdio管脚被占用了,又要使用到sdio连接sd卡,可以模拟实现吗?

[复制链接]
ID:955654 发表于 2022-4-27 09:40 | 显示全部楼层 |阅读模式
如果芯片的sdio 管脚被占用了,但又要使用到 sdio 连接sd卡,那么可以模拟sdio实现吗?  

  1.模拟的时候 时钟该怎么配置啊?
  2.使用4线接收数据的时候 crc效验是 每条线单独效验的吗? 单独效验的时候 如果单条线上的数据 不能凑成各一个完整的字节 那该怎么效验啊    还是说    是 4条线数据组合成完整数据 再效验的?
谢谢各位大佬,帮忙指定下,萌新求助!
回复

使用道具 举报

ID:301191 发表于 2022-4-27 20:36 | 显示全部楼层
顶一下
回复

使用道具 举报

ID:955654 发表于 2022-4-29 17:27 | 显示全部楼层
有大佬知道么
回复

使用道具 举报

ID:883242 发表于 2022-4-29 20:42 | 显示全部楼层
模拟当然可以用,只是速度受限,你能接受就行。
回复

使用道具 举报

ID:1114965 发表于 2024-12-12 19:55 | 显示全部楼层
我是组合成完整的字节校验的,在51单片机上
回复

使用道具 举报

ID:1114965 发表于 2024-12-12 19:57 | 显示全部楼层
void CRC16_4Bits(unsigned char buf[])
{
        unsigned char xdata arr0[128],arr1[128],arr2[128],arr3[128],i;
        for(i=0;i<128;i++)
        {
                arr3[i]=0;
                arr2[i]=0;
                arr1[i]=0;
                arr0[i]=0;
               
                arr3[i]|=*buf&0x80;
                arr2[i]|=(*buf&0x40)<<1;
                arr1[i]|=(*buf&0x20)<<2;
                arr0[i]|=(*buf&0x10)<<3;

                arr3[i]|=(*buf&0x08)<<3;
                arr2[i]|=(*buf&0x04)<<4;
                arr1[i]|=(*buf&0x02)<<5;
                arr0[i]|=(*buf&0x01)<<6;
                buf++;
                arr3[i]|=(*buf&0x80)>>2;
                arr2[i]|=(*buf&0x40)>>1;
                arr1[i]|=(*buf&0x20);
                arr0[i]|=(*buf&0x10)<<1;

                arr3[i]|=(*buf&0x08)<<1;
                arr2[i]|=(*buf&0x04)<<2;
                arr1[i]|=(*buf&0x02)<<3;
                arr0[i]|=(*buf&0x01)<<4;
                buf++;
                arr3[i]|=(*buf&0x80)>>4;
                arr2[i]|=(*buf&0x40)>>3;
                arr1[i]|=(*buf&0x20)>>2;
                arr0[i]|=(*buf&0x10)>>1;

                arr3[i]|=(*buf&0x08)>>1;
                arr2[i]|=(*buf&0x04);
                arr1[i]|=(*buf&0x02)<<1;
                arr0[i]|=(*buf&0x01)<<2;
                buf++;
                arr3[i]|=(*buf&0x80)>>6;
                arr2[i]|=(*buf&0x40)>>5;
                arr1[i]|=(*buf&0x20)>>4;
                arr0[i]|=(*buf&0x10)>>3;

                arr3[i]|=(*buf&0x08)>>3;
                arr2[i]|=(*buf&0x04)>>2;
                arr1[i]|=(*buf&0x02)>>1;
                arr0[i]|=(*buf&0x01);
                buf++;
        }
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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