gpt4 book ai didi

c - 接收十六进制值并将其保存到数组中 [STM32]

转载 作者:行者123 更新时间:2023-11-30 16:17:45 27 4
gpt4 key购买 nike

我想通过 UART 从 PC 接收十六进制值并将其保存到 STM32-uC。

收到的十六进制值如下所示:

FF00 4a85 04b5 08aa 6b7r 00FF

(FF00和00FF只是检查字节)

我想保存大量(不同的)数据行,如下所示:4a85 04b5 08aa 6b7r
4a85 04b5 08aa 6b7r
4a85 04b5 08aa 6b7r
4a85 04b5 08aa 6b7r
4a85 04b5 08aa 6b7r
4a85 04b5 08aa 6b7r
...................

后来我必须读取内存并从每 2 个字节获取 int 值:

04D1 -> 1233

  1. 问题:

我创建多数组

volatile uint8_t testarrays[8][5000]; //data storage

并初始化:

uint8_t received_str[12] //4 Bytes: `FF 00 and 00 FF` checksum
uint32_t h=0;
while(h<5000){
if (receive_done_flag == TRUE) { //UART receive data
testarrays[0][h]=received_str[2];
testarrays[1][h]=received_str[3];
testarrays[2][h]=received_str[4];
testarrays[3][h]=received_str[5];
testarrays[4][h]=received_str[6];
testarrays[5][h]=received_str[7];
testarrays[6][h]=received_str[8];
testarrays[7][h]=received_str[9];
}
receive_done_flag == FALSE
h++;
}

我的想法对吗?

  • 问题:
  • 稍后如何从存储中读取数据? uint16_t x=0; uint16_t y=0; uint8_t motorspeed_hex[8];

    uint16_t speed_hex_M1;
    uint16_t speed_hex_M2;
    uint16_t speed_hex_M3;
    uint16_t speed_hex_M4;

    while(y<vert_length){
    x=0;
    while(x<hor_length){
    motorspeed_hex[x] = testarrays[x][y];
    x++;
    }
    uint16_t speed_hex_M1 >> 8 = motorspeed_hex[0]
    uint16_t speed_hex_M1 = motorspeed_hex[1]
    uint16_t speed_hex_M2 >> 8 = motorspeed_hex[2]
    uint16_t speed_hex_M2 = motorspeed_hex[3]
    uint16_t speed_hex_M3 >> 8 = motorspeed_hex[4]
    uint16_t speed_hex_M3 = motorspeed_hex[5]
    uint16_t speed_hex_M4 >> 8 = motorspeed_hex[6]
    uint16_t speed_hex_M4 = motorspeed_hex[7]
    y++;
    }

    现在,我必须将 speed_hex_M1.. 转换为 int 值,我该如何在 c 中做到这一点?

    非常感谢!

    最佳答案

    有太多语法错误,无法理解您要编写的内容。例如,在第一个代码片段中,“receive_done_flag == FALSE”是一个生成 1(真)或 0(假)的条件表达式,但不使用条件值。你的意思是写一个赋值语句吗?还是 if 语句?或者...?

    在第二个片段中,您有“speed_hex_M1 >> 8 = motorspeed_hex[0]”。同样,在 C 中这是无意义的。左侧是被分配的“变量(或存储单元)”。那么你的意思是“motorspeed_hx[0] = speed_hex_M1 >> 8”还是别的意思>

    关于c - 接收十六进制值并将其保存到数组中 [STM32],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56188378/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com