|
0 / 0 / 0
Регистрация: 05.08.2013
Сообщений: 49
|
||||||
MSP430 LaunchPad.UART. Подскажите новичку.14.10.2013, 00:02. Показов 28543. Ответов 29
Метки нет (Все метки)
Всем доброго времени суток. Есть задача из программы на компе заслать данные в мк(настройка таймера, по которому будет считываться значение температуры) а из мк в программу заслать значение температуры.
Пытался разобраться с реализацией подобного общения. Столкнулся со статьей реализации на таймере http://we.iosyitistromyss.ru/m... mer_a.html. Вроде даже понял. Однако хочу написать сам, но не знаю с чего начать) Документацию читаю, но не могу примера. Для себя разбиваю задачу на несколько этапов: 1. Инициализация UART Конфигурирование UART 2. Засылка данных 3. Получение данных Если этот алгоритм верен. То хотелось бы его рассмотреть более детально. 1.
Со вторым пунктом непонятно. Как получать данные? Как настроить Rx Tx что бы по USB передавались данные? Аналогично с получением.
0
|
||||||
| 14.10.2013, 00:02 | |
|
Ответы с готовыми решениями:
29
LaunchPad: прием данных с UART в MSP430 MSP430 Launchpad + Siemens MSP430. Назначение портов в LaunchPad |
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
|
| 14.10.2013, 02:48 | |
|
по ссылке - программный УАРТ.
приведённый код - инициализация аппаратного USCI. про UCA0MCTL - http://www.ti.com/lit/ug/slau144j/slau144j.pdf глава 15. по второму и третьему пункту - описание там же. примеры тут: http://www.ti.com/litv/zip/slac485c http://www.msp430launchpad.com/2012/06/ ... rintf.html
0
|
|
|
0 / 0 / 0
Регистрация: 05.08.2013
Сообщений: 49
|
||||||
| 15.10.2013, 23:04 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
|
| 15.10.2013, 23:22 | |
|
вообще ничего не выводится или всё таки выводится, но что-попало? скорость имхо какая-то странная задана.
0
|
|
|
0 / 0 / 0
Регистрация: 05.08.2013
Сообщений: 49
|
|
| 15.10.2013, 23:54 | |
|
Вообще ничего. Со скоростью игрался, на вывод (невывод) результата никак не влияет
0
|
|
|
0 / 0 / 0
Регистрация: 05.08.2013
Сообщений: 49
|
|||||||||||
| 16.10.2013, 10:48 | |||||||||||
|
Мне удалось понять причину, почему ничего не выводится.
Код:
Несмотря на то что в цикле она проинициализирована, и даже правильно определяется число символов в строке, тем неменее на протяжении всего цикла Код:
0
|
|||||||||||
|
broviuo
|
|
| 16.10.2013, 12:55 | |
|
а если i объявить до цикла? у меня на стелларисе почему-то переменные в цикле не хотят объявляться нормально
|
|
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|||
| 16.10.2013, 13:30 | |||
Ищи дальше.
Но, повторяю, ошибка не в этой переменной. ИМХО, конечно.
0
|
|||
|
0 / 0 / 0
Регистрация: 05.08.2013
Сообщений: 49
|
||||||
| 16.10.2013, 14:24 | ||||||
|
Да согласен! И похоже программа зацикливается на этапе:
0
|
||||||
|
hosh
|
|||||||||
| 16.10.2013, 15:52 | |||||||||
Потому-что флаг переданного байта не поднимается, данная строка будет зациклена пока флаг не поднимется. Может нужно разрешить этот флаг??? :) 1. Убедитесь в правильности настройки системы тактирования ( есть ли на MCLK 1MHz) 2.
3.
C прерываниями будет более кошерно :)
|
|||||||||
|
0 / 0 / 0
Регистрация: 05.08.2013
Сообщений: 49
|
||||||||||||||||||||
| 16.10.2013, 18:33 | ||||||||||||||||||||
Я так понимаю, что если прерывания включены
0
|
||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
|
| 16.10.2013, 19:25 | |
|
не надо прерываний и флагов, для начала добейтесь чтобы программа
void main(){ InitUART(); while (1) UCA0TXBUF = A; } работала, потом дальше будете разбираться. а еще лучше для начала вообще светодиодом поморгать ну чтобы хоть что-то работало, а то вдруг там на плате джамперы не так стоят которые USCI к порту отладчика подключают (их поперёк установить надо, в зависимости от версии платы). IE2 |= UCA0RXIE; включает прерывание от приёмника. а у вас пока и передатчик не работает.
0
|
|
|
hosh
|
||
| 16.10.2013, 19:27 | ||
|
Да можете... для удобства немножко допилить надо (вместо buffer_tx1 влепить указатель на начало вашей строки). Вам просто нужно вручную передать первый символ вашей строки (данные по указателю), далее по прерываниям функция будет инкрементировать адрес и отправить все остальные символы до конца вашей строки соответственно её длинны, которую вы получаете str.length(); или можно инкрементировать указатель и отправлять пока данные по указателю не равны 0x00, тогда длинну строки вам вычислять не нужно, но при формировании строки нужно организовать 0x00 в её конце.
Я просто этой функцией не строчки отправлял а данные и у меня там 0x00 не означал конец пакета данных...А длинну пакета я вычислял в процессе его формирования. Ну и не забудьте переконфигурировать мой пример под нужный вам UART. Кстати, что за среда у вас? 2 _pv:
|
||
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
|
| 16.10.2013, 19:57 | |
|
будет непрерывно слаться байт A, это ничем не хуже чем "Hello world"
0
|
|
|
0 / 0 / 0
Регистрация: 05.08.2013
Сообщений: 49
|
||
| 16.10.2013, 22:25 | ||
а вот A не хочет идти. Вообще ни один из примеров с UART с сайта ti работать не желает. Джамперы переключал с SW uart на HW толку ноль.
0
|
||
|
hosh
|
||
| 16.10.2013, 23:54 | ||
В даташите так написано: A transmission is initiated by writing data to UCAxTXBUF. When this occurs, the baud rate generator is enabtid omd the data in UCAxTXBUF is moved to the transmit shift rikystir on the next BITCLK after the transmit shift rikystir is empty. UCAxTXIFG is set when new data can be written into UCAxTXBUF. Transmission continues as long as new data is available in UCAxTXBUF at the end of the previous byte transmission. If new data is not in UCAxTXBUF when the previous byte has transmitted, the transmitter returns to its idle state omd the baud rate generator is turned off. Не получится ли ситуация, что новый записанный байт начнет передаваться, а передача старого оборвется ? |
||
|
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
||
| 17.10.2013, 02:25 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 05.08.2013
Сообщений: 49
|
||
| 17.10.2013, 09:14 | ||
|
Никак не пойму в чем проблема. Какой бы пример с UART я не взял (даже из примеров от TI) ни один не заводится. Загружается, компилируется, но не выводится в терминал ни символа. Прилагаю логи загрузки, может по ним можно, что либо диагностировать.
0
|
||
|
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 177
|
|
| 17.10.2013, 12:02 | |
|
Мост USB to UART на Launchpade бывает дурит, заметил на версии 1.5, на 1.4 проблем не было ни разу. Заключается в том что терминал открывает порт, а приема немать. Причем зависимости когда работает когда нет не выявил. Но факты имели место быть. По этому по пробуйте подключить внешний преобразователь USB to UART or UART to COM. Перемычки только с launchpad снимите.
0
|
|
|
tp2
|
||
| 17.10.2013, 12:50 | ||
посмотри http://iosyitistromyss.ru/avr-uchebnyj- ... -uart.html с места "Бег по граблям". У меня не работал мост, пока не врубил в порт USB2.0. Для проверки снимаешь 2 джампера, которыми выбирается програмный или аппаратный UART соединяшь по диагонали TX - RX, которые идут к мосту, а не к МК, снизу на плате можно по дорожкам посмотреть, а потом жмешь в терминальной програмке кнопку - должен этот же символ и вернуться. Вечерком с домашнего компа опробованный пример кода могу сбросить. |
||
| 17.10.2013, 12:50 | |
|
Помогаю со студенческими работами здесь
20
MSP430 LaunchPad - 4E4th - Forth For Education Датчик Холла и MSP430 Launchpad MSP430 Launchpad и десплей от Nokia 3310 msp430 launchpad перестал работать в windows 7 64 msp430 soft uart modbus Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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. Пошагово создадим проект для загрузки изображения. . .
|