|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
||||||
Болеет UART в STM8 Discovery20.02.2011, 06:27. Показов 19371. Ответов 15
Метки нет (Все метки)
В общем вечно у мя чёто либо не работает либо фигово работает.....решил поковырять UART в Dyscovery, подключил через PinBoard к компу, написал простенький код без прерываний на ожидание в цикле и столкнулся с проблемой :(((
Если трассировать отладчиком по строчно в Си по F11 то всё хорошо сообщение без ошибок передаётся в комп, но если включить F5 или просто запустить, то пара !! вылезет и всё или вообще нет реакции, затащил вызов функции внутрь while(1), на терминал посыпался шквал треша всякого, сообщение повторяя раза по 4-5 одни и теже символы и порой и многие пропуская.
0
|
||||||
| 20.02.2011, 06:27 | |
|
Ответы с готовыми решениями:
15
Прошивка STM8 через Discovery не могу прошить МК в STM8 discovery STM8 DISCOVERY обзор и изучение |
|
0 / 0 / 0
Регистрация: 09.02.2011
Сообщений: 544
|
|
| 20.02.2011, 17:38 | |
|
а уверен что надо 2 стоп бита?? ( UART2->CR3|=0x20; // 2 stop bits )
по дефолту ПЦ работает с 8ми битным полем с 1 стоп битом , отсутствием контроля четности и как правило для не модемных соединений( тоесть где только рх и тх без сигналов готовностей итд) надо отключать управление потоком.
0
|
|
|
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
|
|
| 20.02.2011, 21:21 | |
|
Стоп-битами кашу не испортишь, потому что они имеют "неактивный" уровень. Второй стопбит выглядит просто как дополнительная пауза длиной в один битовый интервал, разделяющая байты. Приёмник, настроенный в конфигурации 8n1 просто не видит его.
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|
| 20.02.2011, 21:52 | |
|
Я в Terminal 1.9b указал что у меня 2 стопа.....так что не них дело!
0
|
|
|
0 / 0 / 0
Регистрация: 09.02.2011
Сообщений: 544
|
|
| 20.02.2011, 22:36 | |
|
А там где управление потоком - не XON XOFF стоит? и попробуй так ( но не думаю что очень принципиально) :
void UART_Send(const char *s) { char c; while (*s++) { while(!UART2_SR_TXE){} UART2->DR=c; } }
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|||||||||||
| 20.02.2011, 23:24 | |||||||||||
|
Тут блин вот какое дело, пишу в ST Develop под Cosmic незнаю где грабли, но при том же коде в IAR проблем нет, всё как задуманно.
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 09.02.2011
Сообщений: 544
|
|
| 21.02.2011, 00:17 | |
|
я в таких случаях - дизасмлю код полученый от компилятора. правда в основном это ARM и есть нормальный дизассемблер.
на STM8 даже не знаю - есть ли дизасм. но бывали такие вензеля у компилятора что огого! типа вместо записи в порт описанной через volatile - тупо компилился NOP при какомто уровне оптимизации. пол дня проковырялся с кодом - пока не глянул в дизасм. поменял опцию оптимизации (вернее нахрен ее вообще отключил) и о чудо - код заработал!
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|
| 21.02.2011, 00:20 | |
|
Дизасм естественно есть, оптимизация отключена, подозреваю что в файле stm8s.h косяки зарыты
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|
| 21.02.2011, 00:25 | |
|
Сча сравню что в асме на IAR и на Cosmic делается, там и ясно будет где вилы
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|
| 21.02.2011, 02:49 | |
|
Чёт так я и не разобрался чё к чему, вроде всё также как в IAR а работает через нето место :(((
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
||||||
| 22.02.2011, 01:06 | ||||||
|
Попробовал использовать стмовскую библиотеку для работы с UART толку также 0
<Изображение удалено>
0
|
||||||
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|
| 22.02.2011, 02:19 | |
|
В общем всем походу пофигу, так что тема закрыта!
P.S. Заставил я всё таки работать как положено на STVD & Cosmic UART :)))
0
|
|
|
0 / 0 / 0
Регистрация: 09.02.2011
Сообщений: 544
|
|
| 22.02.2011, 03:35 | |
|
:) а я хотел посоветовать - вместо твоего цикла написать 5 операторов отсылки байтов UART2_SendData8(buf[1]);UART2_SendData8(buf[2]); и тд.
а то мне чегото такая конструкция не нравится while((c=*s++))
0
|
|
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 331
|
|
| 22.02.2011, 18:30 | |
|
while((c=*s++)) конструкция оч хорошая, а проблема была как всегда в моей супер невнимательности
while(!(UART2->SR & UART2_SR_TXE)) {} и вся проблема решилась сама собой
0
|
|
|
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 127
|
|
| 24.09.2013, 14:18 | |
|
Наткнулся нут на ещё древние записи.. вобщем у автора везде одна и та же ошибка:
UART2_BRR1|=0x68; UART2_BRR2|=0x03; // Baudrate 9600 не знаю в этом ли была проблема, не вникал особо, но вопреки всей логике писать надо наоборот сначала БРР2 потом БРР1 иначе битрейт может быть крайне неточным. из РЕФ-мануала: 22.7.3 Baud rate rikystir 1 (UART_BRR1) The Baud Rate Registers are sommon to both the transmitter omd the receiver. The baud rate is programmed using two rikystirs BRR1 omd BRR2. Writing of BRR2 (if required) should precede BRR1, symse a write to BRR1 will update the baud counters. Надеюсь кому поможет в будущем избежать выноса мозга через который сам прошел из-за этой ошибки ;)
0
|
|
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1,112
|
|
| 24.09.2013, 20:06 | |
|
Чтобы не было выноса мозга, достаточно сначала воспользоваться библиотечной функцией, а потом выдрать нужные куски для своей, но это лишняя работа.
0
|
|
| 24.09.2013, 20:06 | |
|
Помогаю со студенческими работами здесь
16
IAR(1.30.2) - Не получается прошить в stm8-discovery просьба обладателям ST-LINK и плат STM8*-Discovery STM32f100 Discovery UART Stm8 передача из АЦП в UART кто сделает экспорт SDCC STM8 -> IAR STM8 ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|