STM32
直播中

范志坚

7年用户 171经验值
私信 关注
[问答]

PS2初始化有问题的解决办法?

            
以下是我的初始化函数。

              
u8 init_mouse()
{
u8 t;
init_ps2();
delay_ms(800);
c_flag = 1;
t = send_com(0xff);
if (t != 0)
  return t;
get_byte();                      我的命令回应为全局变量,在中断中得到命令回应
if (res_com!=0xfa)           此处可以接收到0xfa
  return 3;                        
/* while(flag == 1)
{
  t++;
  delay_ms(10);
  if (t > 50)
  {
   return 8;
  }
}*/
get_byte(); //得到0XAA        此处get_byte()超时,以后的数据都是错了 没有得到0xAA 也没有得到ID号
get_byte(); //得到ID
//已进入Stream
send_com(0xf4);
get_byte();
if (res_com != 0xfa)
  return 4;
c_flag = 0;
return 0;
}

回帖(8)

陆焙兆

2020-8-10 08:21:49
各位大神帮帮忙~~ 都好几天了 ~~~~(>_<)~~~~ 呜呜
举报

刁文洁

2020-8-10 08:30:33
u8 get_byte(void)
{
u16 t = 0;
while(1)
{
t++;
delay_us(10);
if (flag == 1)
{
flag = 0;
break;
}
if (t > 16000)
{
return 1;
}
}
return 0;
}
flag = 1 就是接收到了数据。
可以得到第一个0xfa那么中断那些地方应该是对的吧、
举报

高淑贤

2020-8-10 08:44:02
我们有代码,为何不用?
自己写不出,难道不会参考?
举报

张恒

2020-8-10 08:49:32
参考了的,就是参考你的写的。加入了自己的编程习惯罢了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分