19.11.2019, 13:17
|
|
Прописка
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Запись в UART, чтение из UART
Добрый день,
Подскажите, как преобразовать ASCII код 0xFF в символ, сложить его с остальными символами:
Код:
|
uint8_t str[]="Hello";
while (1) {
HAL_UART_Transmit(&huart2,str,sizeof(str),1000);
} |
2. Как принять строку произвольной длины?
|
|
|
|
19.11.2019, 13:34
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,704
Сказал спасибо: 189
Сказали Спасибо 3,193 раз(а) в 2,070 сообщении(ях)
|
Re: Запись в UART, чтение из UART
Сообщение от sanstan
|
2. Как принять строку произвольной длины?
|
включаешь прерывание от порта и внутри прерывания считываешь регистр DR, сбрасываешь прерывание....
что проще то? или хал по простому делать не дает как всегда?))))
Сообщение от sanstan
|
преобразовать ASCII код 0xFF в символ,
|
вот так в строке напиши - ("\xff");
__________________
кагмаподэ магмаподэ
|
|
|
|
05.03.2020, 16:45
|
|
Прописка
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: Запись в UART, чтение из UART
Цитата:
|
вот так в строке напиши - ("\xff");
|
Работает!
Подскажите, как создать массив uint8_t str[] из нескольких переменных:
надо получить вроде этого:
Код:
|
int main (void){
.....
int var1=1;
float var2=3;
uint8_t s0[]="Привет мир";
str=s0 + "+" +var1+ "="+var2;
HAL_UART_Transmit(&huart2,str,sizeof(str),1000);
...
} |
|
|
|
|
05.03.2020, 18:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,637
Сказал спасибо: 117
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Запись в UART, чтение из UART
Сообщение от sanstan
|
как создать массив uint8_t str[] из нескольких переменных:
|
Написать свою реализацию функции strcpy: поочередно загонять все нужное в один буфер.
// но зачем так делать? Все равно при передаче данных на отсылку в UART они буферизуются. А как только буфер переполняется, происходит какое-то условие (смотря как реализована отправка) или принудительно вызвана синхронизация буфера, происходит отправка сообщения при помощи DMA.
Только калокуб сначала надо выкинуть.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:15.
|
|