Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
02.10.2008, 12:44
|
|
Частый гость
Регистрация: 22.04.2007
Сообщений: 26
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
MSP430 и RS485
Добрый день.
В написанной мной программе для MSP430F2272 имеется функция (отправляет пакет):
void SendPackage (unsigned char *TrData, unsigned int NumberByte)
{
P4OUT|=0xC0;//переключаемся на передачу
unsigned int NumberByte2=0;
while (NumberByte2‹NumberByte)
{
if((IFG2&0x02)==2){UCA0TXBUF=TrData[NumberByte2];NumberByte2++;}
}
while ((IFG2&0x02)!=2);
P4OUT&=0x3F;//переключаемся на приём
}
Для передачи данных c микроконтроллера использую модуль UART. Данные предаются по интерфейсу RS485, для преобразования использую ADM2483.
Проблема в том, что надо передать N байт, а приходит N-1, последний байт или вообще не приходит или приходит с ошибкой. Если убрать строчку P4OUT&=0x3F;, то пакет передаётся полностью.
Подскажите, пожалуйста, в чём ошибка?
|
|
|
|
03.10.2008, 08:26
|
|
Частый гость
Регистрация: 15.08.2007
Сообщений: 15
Сказал спасибо: 2
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
все логично. после помещения последнего байта в буфер uart ты переключаешь канал на вход, тогда как uart продолжает передачу последнего символа.
можно добавить задержку соответствующую времени передачи байта на заданной скорости, и после этого выключать передатчик
|
|
|
|
03.10.2008, 13:50
|
|
Частый гость
Регистрация: 22.04.2007
Сообщений: 26
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Задержка помогла, спасибо.
Но я и так ждал, когда последний байт отправится, вот этой строчкой:
while ((IFG2&0x02)!=2);//проверка, пустой ли буфер передатчика.
|
|
|
|
11.04.2009, 11:37
|
|
Прохожий
Регистрация: 05.02.2009
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Прошивка MSP430F169
Возможно ли считать прошивку микроконтроллера MSP430F169, с помощью какого программатора и программы?
Уважаемы знатоки, подскажите пожалуйста как считать код из микроконтроллера. Я пыталась использовать программку MSP430Flash Gang Programmer, после выбора Device Type - MSP430F169 в окне Status появляется строка Operation succssful, а вот после запуска появляется сообщение о том что нет синхронизации. Существует проект, созданный в среде IAR для которого сформирован файл загрузки .d43. Прошивка микроконтроллера проводиться без проблем. В итоге нужно сравнить прошивки корректно работающего устройства и существующего проекта.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Аналог RS485
|
hubble |
Автоматика и аппаратура связи |
6 |
12.06.2011 14:00 |
RS485
|
stri |
Микроконтроллеры, АЦП, память и т.д |
4 |
06.08.2007 10:36 |
RS485<->RS232
|
balepa |
Микроконтроллеры, АЦП, память и т.д |
5 |
01.08.2007 18:03 |
rs485
|
dark_nv |
Автоматика и аппаратура связи |
6 |
27.03.2007 12:17 |
RS485->RS232
|
chipic128 |
Микроконтроллеры, АЦП, память и т.д |
10 |
01.02.2007 19:26 |
Часовой пояс GMT +4, время: 00:38.
|
|