Я пытаюсь проверить связь между моим LPC4370 cortex-m4 micro (платой LPC Link2 eval) и моим компьютером, используя пример VCOM, поставляемый с LPCOpen.
Я просто хочу отправить данные из matlab, скопировать их в массив int32_t и отправить обратно на хост.
Вот что я попробовал.
От Matlab:
fwrite(serial_object,raw_data,'int32');
Для части C я суммирую только соответствующий код:
#define RAW_SIZE 1024
unsigned char uint8_t;
typedef int int32_t;
// My Buffer
__DATA(RAM) int32_t buffer_rt_s[RAW_SIZE] = {0};
// VCOM-UART rx buffer
static uint8_t g_rxBuff[4*RAW_SIZE];
int i;
int main()
{
vcom_bread((uint8_t*)&g_rxBuff[0], 4*RAW_SIZE);
for(i=0; i < RAW_SIZE; i=i+1)
{
buffer_rt_s[i]=(int32_t*)(&g_rxBuff[0]+i*4);
}
vcom_write((uint8_t*)&buffer_rt_s[0], 4*RAW_SIZE);
}
Что я пытаюсь сделать здесь
for(i=0; i < RAW_SIZE; i=i+1)
{
buffer_rt_s[i]=(int32_t*)(&g_rxBuff[0]+i*4);
}
- доступ к приемному буферу, продвигающемуся на 4 байта на каждой итерации.
Поэтому я прошу адрес
(&g_rxBuff[0]+i*4)
А затем для содержимого в этом месте, указав, что я хочу 32-битное число (то есть 4 байта):
(int32_t*)
Результаты с участка Matlab.
Мне кажется, что я читаю адреса принимающего буфера вместо содержимого.
Обратите внимание, что я уже использовал функции vcom с matlab, и я точно знаю, что они работают.
Любая помощь будет принята с благодарностью.
Andrea