读取字符串并通过UART将二进制文件发送到STM32

时间:2019-03-15 11:22:31

标签: qt hex stm32 uart

我想使用UART接口从PC读取数千行并将其发送到STM32 mikrocontroller。

行看起来像:

$array1 = array('c1', 'ot1', 'ot1', 'R');
$array2 = array(20, 10, 15, 5);
$array3 = array();
for ($i = 0; $i < count($array1); $i++) {
    if (array_key_exists($array1[$i], $array3)) {
        $array3[$array1[$i]] = array($array3[$array1[$i]], $array2[$i]);
    } else {
        $array3[$array1[$i]] = $array2[$i];
    }
}

STM32应该先保存一个二进制数据,然后才能逐行读取并每100ms设置PWM值。

  1. 如何使用QT Creator将字符串转换为二进制/十六进制(通过UART发送字符串的字节太多)?
  2. 在STM32数组上保存bin的行数(最多20000行)的更好方法是什么?二进制文件?
  3. 我应该使用外部存储吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

  1. 您可以使用QString::toInt()QByteArray::toInt()函数将字符串或字节数组转换为整数。 如果将一行作为字符串发送,则一行将是16个字节(包括LF(0x0A)字符)。如果以二进制形式发送,则行的大小将减小。但是,我建议使用一种使用校验和的标准协议。

  2. 3-取决于内部存储器的大小和您的需求。可以使用EEPROM或FLASH等外部存储器