|
求助下,我陀螺仪需要做个开机归零。我用给陀螺仪用CH304串口连电脑,在电脑上行用串口助手直接发送 FF AA 52 是可以看到陀螺仪校准归零。但是我用2560 写个发送串口指令的程序,陀螺仪不归零。求指教,不胜感激! - const char zero[3] = {0xFF, 0xAA, 0x52};
- unsigned char Re_buf[11], counter, sign;
- float x , y, z;
- void setup() {
- Serial.begin(9600);
- Serial2.begin(115200);
- delay(100);
- Serial2.write(zero,3);
- // Serial2.write(0xFF);
- // Serial2.write(0xAA);
- // Serial2.write(0x52);
- }
- void Rxyz()
- {
- while (Serial2.available())
- {
- Re_buf[counter] = (unsigned char)Serial2.read();
- if (counter == 0 && Re_buf[0] != 0x55)return;
- counter++;
- if (counter == 11)
- {
- counter = 0;
- sign = 1;
- }
- if (sign)
- {
- sign = 0;
- if (Re_buf[0] == 0x55 && Re_buf[1] == 0x53)
- {
- x = (short(Re_buf[3] << 8 | Re_buf[2])) / 32768.0 * 180;
- y = (short(Re_buf[5] << 8 | Re_buf[4])) / 32768.0 * 180;
- z = (short(Re_buf[7] << 8 | Re_buf[6])) / 32768.0 * 180;
- }
- }
- }
- }
- void loop() {
- Rxyz();
- Serial.print("Z=");
- Serial.println(z);
- // Serial.write(zero, 1);
- // Serial.write(zero, 2);
- // Serial.write(zero, 3);
- delay(200);
- }
复制代码 |
|