реклама на сайте
подробности

 
 
> LPC2103 проблемы с UART1
the_spirit
сообщение Oct 8 2011, 17:15
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 25-11-10
Из: Красногорск
Пользователь №: 61 170



UART1 подключается к компу через стандартную плату с FTDI когда отдельнго проверяю работу UART1 все отлично, идут пакеты, все работает, когда подключаю FTDI к USB порту, сигнал на вход RX FTDI пропадает(проверяю осцилографом) если через терменал непрерывно передавать на FTDI символы, то сигнал на RX снвова появляется, RX и TX не перепутаны. код инициализации UART1 и работы с ним:

#include <UART.h>
//STACK OPERATIONS&UART
unsigned int temp;
int flag;
void init_uart(){
PINSEL0|=(1<<16)||(1<<18);//(TXD UART1, RXD UART1)
/* Enable FIFO's and reset them */

U1FCR=0x7;
/* Enable DLAB(7 bit -> 1), set word length set to 8bits(bits"0","1"->11), */
U1LCR=0x83;
/* Baud rate set to 9600 */
U1DLL=0x8e;
U1DLM=0x0;
/* Clear DLAB */
U1LCR=0x3;

}
int push(char OpNum)
{
int temp=ptIN+1;
if(temp==FIFO_Size){temp=0;}
if(ptOUT==temp) return 0 ;
else
{
FIFO[ptIN]=OpNum;
ptIN=temp;

return 1;
}


}
unsigned char pop()
{ unsigned char OpNum;
int temp=ptOUT+1;
if (temp==FIFO_Size){temp=0;}
if(ptIN==ptOUT) return(0);
else
{
OpNum=FIFO[ptOUT];
ptOUT=temp;
return(OpNum);
}

}
int check()
{
if(ptOUT>ptIN) return(ptOUT-ptIN);
else return (ptIN-ptOUT);
}
void AutoSent(void)
{

while(check())
{
U1THR=pop();
while(!(U1LSR & TEMT)){};
}

}
void UART1SendStr(char const *Str)
{
while( *Str)
{
flag=push(*Str++);
if(!flag) break;
}
while(!U1LSR&TEMT){};
AutoSent();
}
//STACK OPERATIONS&UART
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 21:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01345 секунд с 7
ELECTRONIX ©2004-2016