📄 text.c
字号:
#include <reg51.h>
#define unsigned char uchar;
/***********************************************************************************************
** 函数名称: INT8U SD_GetCmdByte6()
** 功能描述: 获取SD卡命令的CRC7
** 输 入: INT8U cmd : 命令
INT8U *param: 命令的参数,长度为4字节
** 输 出: CRC7码
*************************************************************************************************/
uchar SD_GetCmdByte6(uchar cmd,uchar *param)
{
uchar i, j;
uchar reg = 0;
uchar array[5];
array[0] = cmd;
for (i = 1; i < 5; i++) /* 将参数的顺序重新排列 */
array[i] = param[4 - i];
for (i = 0; i < 5; i++) /* 计算5个字节的CRC7 */
{
for (j = 0; j < 8; j++)
{
reg <<= 1;
reg ^= ((((array[i] << j) ^ reg) & 0x80) ? 0x9 : 0);
}
}
return ((reg << 1) + 0x01) ; /* 计算结果的CRC7左移一位,并将最低位置1 */
}
void main()
{
uchar tt;
uchar cmd0,barry[4];
cmd0=0;
barry[4]={0x00,0x00,0x00,0x00};
tt=SD_GetCmdByte6(cmd0,barry);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -