IAR как объединить символы в строку?

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Alca
Родился
Сообщения: 4
Зарегистрирован: Ср сен 22, 2010 12:36:33

IAR как объединить символы в строку?

Сообщение Alca »

Вот что есть -

while(1){
buf = USART_GetChar(); //считываем буфер usart
if (buf){
IND_Output(buf, 2);

Проблемма такая и УСАРТ символы выпрыгивают по одному, и по одномуже уходят на 7 сегментник. Как сделать чтоб buf была не 1 символ, а несколько(к примеру 4), то есть строка?
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: IAR как объединить символы в строку?

Сообщение ARV »

хотелось бы, конечно, знать, что там такое у вас этот buf... и как вы с ним работаете... и как ваш вывод устроен, т.е. как он строку принимать будет...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Alca
Родился
Сообщения: 4
Зарегистрирован: Ср сен 22, 2010 12:36:33

Re: IAR как объединить символы в строку?

Сообщение Alca »

ARV писал(а):хотелось бы, конечно, знать, что там такое у вас этот buf... и как вы с ним работаете... и как ваш вывод устроен, т.е. как он строку принимать будет...
buf цифра из терминала, мне нужо накопить такие 4 цыфры и пульнуть их на семисигментник. Я допиреть не могу как можно из 4 символов к примеру 1,2,5 и 8 сделать 1258.
Murav
Опытный кот
Сообщения: 877
Зарегистрирован: Чт фев 18, 2010 13:51:56

Re: IAR как объединить символы в строку?

Сообщение 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 - это далеко не одно и то же.
Реклама
Эиком - электронные компоненты и радиодетали
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»