Страница 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 - это далеко не одно и то же.