Раньше я работал над java, я новичок в C. У меня возникли некоторые проблемы.
Здесь я постоянно получаю данные из источника. После достижения счетчика 3 мне нужно передать все данные из счетчика 1 в 3 в другую функцию.
void check_msg_id( uint8_t *recvdata) {
uint8_t buffer1[3];
cnt=0;
buffer1[cnt]=recvdata;
cnt++;
if (cnt==3) {
cnt=0;
}
}
Как я могу передать данные со всех счетчиков в буфер? Любая помощь будет оценена по достоинству. заранее спасибо
Похоже, вы хотели сделать цикл, но забыли это сделать. Вы устанавливаете cnt
(для которого мы не видим никакого объявления) в 0
, затем увеличиваете его с помощью cnt++;
, помещая его в 1
, и затем у вас есть if (cnt==3)
, что никогда не будет правдой.
Думаю, нам нужно больше контекста, чтобы помочь вам :) Не могли бы вы показать нам функцию, которая вызывает check_msg_id (), или вы собираетесь использовать char * tmp_recvdata?
Вы можете передать данные в другую функцию с помощью.
void check_msg_id( uint8_t *recvdata) {
uint8_t buffer1[3];
cnt=0;
buffer1[cnt]=recvdata;
cnt++;
if (cnt==3) {
cnt=0;
pass_data(buffer1); //create a function
}
}
Вы можете пройти это где угодно.
buffer1[cnt]=recvdata;
Если вы не получали ошибок / предупреждений из этой строки, убедитесь, что они включены в вашем компиляторе.