Электронщик Опубликовано 16 июля, 2017 Поделиться Опубликовано 16 июля, 2017 Цитата Скрытый текст uint8_t data; char data4[1]; data=5; sprintf(data4,"%d",data); while (!(UCSR0A & (1<<UDRE0))); UDR0=data4; Вообщем набросал такой вот кодик, все хорошо, но почему-то вместо цифры 5 в СОМ порте буква ы, если передаю строковую допустим букву 'R' то все нормально, преобразование же правильно делаю, что не так не пойму, помогите пожалуйста. И этот код для STM в IAR работает. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
artos5 Опубликовано 16 июля, 2017 Поделиться Опубликовано 16 июля, 2017 Нужно data4[1]; сделать больше размером . Я обычно выбираю 10 или 20 байт в массиве. 0 Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ? Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
Электронщик Опубликовано 16 июля, 2017 Автор Поделиться Опубликовано 16 июля, 2017 Спасибо, но не помагает, только буква меняется, уже и 10 и 20, и 100 делал). Что за прикол 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
Yurkin2015 Опубликовано 16 июля, 2017 Поделиться Опубликовано 16 июля, 2017 Вот так надо. UDR0=data4[0]; 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Электронщик Опубликовано 16 июля, 2017 Автор Поделиться Опубликовано 16 июля, 2017 (изменено) Точно работает, что-то я с массивом запутался, ведь 0 адрес массива то это значение, а 1 адрес, это ж там какой-то бит окончания массива, или что-то в этом духе, хотя не понятно почему в STM я явно адрес не указывал, не помню но вроде у СТМ регистр данных тоже 8 бит, а не 16, а значить не должно было работать, а работает на СТМ, ну да ладно. Спасибо. Изменено 16 июля, 2017 пользователем Электронщик 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Электронщик Опубликовано 17 июля, 2017 Автор Поделиться Опубликовано 17 июля, 2017 Еще вопрос возник, почему не переносится каретка на нижнюю строку в Com-порту, или я не туда символ переноса ставлю? Скрытый текст uint8_t data; char data4[3]; EEPROM_write(0x1, data); delay(500); data2=EEPROM_read(0x1); sprintf(data4,"%d\n",data2); while (!(UCSR0A & (1<<UDRE0))); for(int i=0; i<3; i++){ UDR0=data4[i]; } 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
artos5 Опубликовано 17 июля, 2017 Поделиться Опубликовано 17 июля, 2017 printf("str\r\n"); // так надо Посмотрите как я организовывал прием и передачу строк по юарт в этом файле: https://drive.google.com/file/d/0BxEy5lBKNE0NUUg3Znk1ZGJWUkk/view?usp=drivesdk Приведу тут код: Цитата //Send char void Usart3_Send_symbol(uint8_t data) { while(!(USART3->SR & USART_SR_TC)); //????????? ????????? ????? TC - ?????????? ?????????? ???????? USART3->DR = data; //?????????? ???????? ? ??????? ?????? - ???????? ?????? } //Send string void Usart3_Send_String(char* str) { uint8_t i=0; while(str) { Usart3_Send_symbol(str); i++; } Usart3_Send_symbol('\n'); Usart3_Send_symbol('\r'); } Коряво с телефона выглядит , но разобраться можно. 0 Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Электронщик Опубликовано 17 июля, 2017 Автор Поделиться Опубликовано 17 июля, 2017 Спасибо, сделал как у вас, все работает. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
artos5 Опубликовано 17 июля, 2017 Поделиться Опубликовано 17 июля, 2017 Рад что заработало 1 Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.