|
这是写入,发送,和读状态函数
/************向LMH6401 中写入一个字节*************************1*/
void W_LMH6401_byte(unsigned char date)
{
unsigned char temp;
unsigned char i;
temp = date;
for (i = 0; i < 8; i++) {
SCK_0 ;
if((temp&0x80)==0x80)
{ MOSI_1; }
else { MOSI_0; }
SCK_1 ;
temp <<= 1;
}
MOSI_0;
}
/********************读取LMH6401 一个字节***********************2*/
unsigned char R_LMH6401_byte(void)
{
unsigned char temp=0;
unsigned char i,SDI;
for(i = 0; i < 8; i++) {
temp <<= 1;
SCK_0 ;
SDI = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6);
if(SDI) {temp++; }
// else {printf("\n\r output low data \n\r");}
SCK_1 ;
}
return(temp);
}
/*******************读取LMH6401 状态**************************3*/
unsigned char LMH6401_status(u8 addr)
{
unsigned char status;
DF_CS_0; //片选打开
delayus(10);
W_LMH6401_byte(addr); //D7H是读取状态的命令字
status = R_LMH6401_byte(); //读取状态字节
DF_CS_1; //片选关闭
delay(500);
return status;
}
下面是读写的操作时序图
下面是寄存器
发送00,应该返回03,但是毫无反应无返回,发送其他指令也是
还有一个问题就是,如何发送7位地址,请各位帮忙解答一下
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|