не могу разобраться как правильно настроить UART и что еще требуется сделать. То идут 0х00, то вообще по uart1 ничего не идет. Если замкнуть Р2.1 и Р2.0 то сообщения зеркально вроде идут. собственно код Спойлер
IIRValue >>= 1; /* skip pending bit in IIR */ IIRValue &= 0x07; /* check bit 1~3, interrupt identification */ if ( IIRValue == IIR_RLS ) /* Receive Line Status */ { LSRValue = LPC_UART1->LSR; /* Receive Line Status */ if ( LSRValue & (LSR_OE|LSR_PE|LSR_FE|LSR_RXFE|LSR_BI) ) { /* There are errors or break interrupt */ /* Read LSR will clear the interrupt */ UART1Status = LSRValue; Dummy = LPC_UART1->RBR; /* Dummy read on RX to clear interrupt, then bail out */ return; } if ( LSRValue & LSR_RDR ) /* Receive Data Ready */ { /* If no error on RLS, normal ready, save into the data buffer. */ /* Note: read RBR will clear the interrupt */ UART1Buffer[UART1Count] = LPC_UART1->RBR; UART1Count++; if ( UART1Count == uartBUFSIZE ) { UART1Count = 0; /* buffer overflow */ } } } else if ( IIRValue == IIR_RDA ) /* Receive Data Available */ { /* Receive Data Available */ UART1Buffer[UART1Count] = LPC_UART1->RBR;
if(UART1Buffer[UART1Count]==0x0A)// конец сообщения GPS_ready = READY; else GPS_ready = NOT_READY; UART1Count++; if ( UART1Count == uartBUFSIZE ) { UART1Count = 0; /* buffer overflow */ } } else if ( IIRValue == IIR_CTI ) /* Character timeout indicator */ { /* Character Time-out indicator */ UART1Status |= 0x100; /* Bit 9 as the CTI error */ } else if ( IIRValue == IIR_THRE ) /* THRE, transmit holding register empty */ { /* THRE interrupt */ LSRValue = LPC_UART1->LSR; /* Check status in the LSR to see if valid data in U0THR or not */ if ( LSRValue & LSR_THRE ) { UART1TxEmpty = 1; } else { UART1TxEmpty = 0; } }
if (*BufferPtr != 'X') { BufferPtr+=0; } LPC_UART0->THR = *BufferPtr; UART0TxEmpty = 0; /* not empty in the THR until it shifts out */ BufferPtr++; Length--; } } else { while ( Length != 0 ) { /* THRE status, contain valid data */ while ( !(UART1TxEmpty & 0x01) ); LPC_UART1->THR = *BufferPtr; UART1TxEmpty = 0; /* not empty in the THR until it shifts out */ BufferPtr++; Length--; } } LPC_UART0->IER = IER_THRE | IER_RLS | IER_RBR; return; }
int main() { int i; uint8_t c1=0x0D, c2=0x0A; GPS_ready=NOT_READY; UART0=0; SystemInit(); UARTInit(0,115200); UARTSend(0,"345",3); UARTInit(1,115200); LPC_PINCON -> PINMODE4 |= 0x0000000A;
gl8088s_init(); gl8088s_enable(); gl8088s_reset(); while (!0) { if (GPS_ready == READY) { UARTSend(0,UART1Buffer,UART1Count); UART1Count = 0; GPS_ready = 0; } if (UART0==1) { UART0=0; UARTSend(1,UART0Buffer,UART0Count); UART0Count=0; }
} }
В общем куда смотреть? я как понимаю подключил модуль и он должен подавать строки nmea с какой-то частотой, а тут такого нету. В даташите сказано что перед ресетом надо ноги юарта модуля глонасс вывести в высокоимендансное состояние (Z состояние). Это я как понимаю No pull-up/down состояние?
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Проверьте, правильно ли бодрейт у МК настроен. Раз сам себя он слышит и понимает, значит обработка приёма есть. Т.е. все предделители при инициализации уарта проверьте.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
в общем проблему решил: чип слал всякую ерунду. Установил другой чип (уже ml8088s), дернул резет и все пошло идеально. Видимо чип я убил как-то или брак пришел.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения