данные массивов usart
- Войдите на сайт для отправки комментариев
Сб, 19/05/2018 - 14:56
Здравствуйте всем не получается принимать сразу 8 данных с терминала.
usartRxBuf[8]={}; char a,c,d; ISR(USART_RX_vect) //завершение приема { if (rxCount < 8) { a=UDR0; c=0; if ((a>=48) && (a<=57)) {// преоброзование с символа на чисел c = c * 10 + (a - 48); } d=c; usartRxBuf[rxBuftail]=d;//забираем принятые данные rxBuftail++; if (rxBuftail == 8) {rxBuftail=0; } rxCount++; } }
не получается принимать сразу 8 данных с терминала.
Спасибо, будем знать, что у тебя не получается. Если появятся вопросы - спрашивай.
Только не забудь выложить полный скетч и нормально объяснить чего хотел и что получилось.
Спасибо за отзыв вот полный скетч
До конца дочитать пост терпежу не хватило?
Вообще правильно написал код для того чтобы принимать сразу данные одного байта?
если в терминале послать сразу один байт на чиная с 0 1 2 3 4 5 6 7 тогда в место 0 ставится
usartTxBuf[8]={1,1,2,3,4,5,6,7};
а если послать 0 1 6 3 4 5 6 7 тогда какая то ерунду показывает
Так ты хочешь байт принять или 8 байтов?
Я думал если сразу подать данные с терминала 0 1 2 3 4 5 6 7 получится один байт
Yer, слово "данные" в русском языке используется исключительно во множественном числе. Но при этом объем данных принято определять в некоторых единицах (битах, байтах, etc.).
Постарайтесь сформулировать свою проблему в общепринятых терминах, и вполне вероятно, что только это поможет Вам самостоятельно найти либо ошибку, либо решение.
Я думал если сразу подать данные с терминала 0 1 2 3 4 5 6 7 получится один байт
Цитата года, щитаю :) Если сложить десять раз по рублю - должен получится рубль: деревянный, он, гад, такой - сколько ни складывай, всё равно дрова :) :) :)
Спасибо всем большое