Страница 1 из 1
IAR как объединить символы в строку?
Добавлено: Пн окт 04, 2010 09:11:43
Alca
Вот что есть -
while(1){
buf = USART_GetChar(); //считываем буфер usart
if (buf){
IND_Output(buf, 2);
Проблемма такая и УСАРТ символы выпрыгивают по одному, и по одномуже уходят на 7 сегментник. Как сделать чтоб buf была не 1 символ, а несколько(к примеру 4), то есть строка?
Re: IAR как объединить символы в строку?
Добавлено: Пн окт 04, 2010 09:27:19
ARV
хотелось бы, конечно, знать, что там такое у вас этот buf... и как вы с ним работаете... и как ваш вывод устроен, т.е. как он строку принимать будет...
Re: IAR как объединить символы в строку?
Добавлено: Пн окт 04, 2010 09:31:31
Alca
ARV писал(а):хотелось бы, конечно, знать, что там такое у вас этот buf... и как вы с ним работаете... и как ваш вывод устроен, т.е. как он строку принимать будет...
buf цифра из терминала, мне нужо накопить такие 4 цыфры и пульнуть их на семисигментник. Я допиреть не могу как можно из 4 символов к примеру 1,2,5 и 8 сделать 1258.
Re: IAR как объединить символы в строку?
Добавлено: Пн окт 04, 2010 15:48:13
Murav
Alca писал(а):buf цифра из терминала
Во-первых buf - это не цифра, а переменная, по-видимому, типа char или int. А цифра - это значение этой переменной, которое туда затем записывается.
Alca писал(а):мне нужо накопить такие 4 цыфры и пульнуть их на семисигментник.
Значит во-первых их надо где-то хранить, для этого очень подходит массив, так что объявляй массив и записывай в него приходящие байты.
Что-нибудь типа такого:
Код: Выделить всё
char buf[4]
char count;
while(1) {
char a = USART_GetChar();
if (a) buf[count++] = a;
if (count>=4) {
ShowMyArray(buf);
count=0;
}
}
И не забывай, что '1' и 1 - это далеко не одно и то же.