本帖最后由 shory 于 2022-4-13 14:40 编辑
大家好,我在调试BL0940芯片时,需要通过串口向BL0940写入16进制指令,然后芯片回复信息。
使用串口助手调试,发送16进制 58 AA 串口助手能成功收到芯片回复的报文;但是使用Arduino发送,却始终收不到。实测Arduino已经将 58 AA 发出。我在想应该是我发送的有问题吧?
官方数据手册发送数据格式:
- 通过命令“(0x58) + 0xAA”,BL0940 会返回一个全电参数数据包。
复制代码
芯片回复报文类似:
- 55 78 6C 00 F0 A5 00 77 03 00 BC A7 77 30 02 00 39 40 FF E0 01 00 FF FF FF 00 00 00 66 01 00 FE 03 00 95
复制代码
Arduino代码如下:
- #include <SoftwareSerial.h>
- SoftwareSerial DataToHMISerial(10, 11); //rxPin, txPin
- byte getBL0940AllData[2] = {0x58, 0xAA};
- void setup() {
- Serial.begin(4800);
- DataToHMISerial.begin(4800);
- }
- void loop() {
-
- Serial.write(getBL0940AllData, 2);
- delay(500);
-
- while(Serial.available()) {
- byte r = Serial.read();
- DataToHMISerial.print(r, HEX);
- DataToHMISerial.print(" ");
- }
- DataToHMISerial.println();
- delay(1000);
- }
复制代码
|