UART Driver with Interrupt

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

UART Driver with Interrupt

1,641件の閲覧回数
aseem
Contributor I

Hi All,

I've written a UART driver for Kinetis K70 with the Interrupt functionality. So far I'm able to Transmitte the data in polling mode and Recieve data interrupt mode.

Currently the problem I'm facing is that on every transmission and recieption of first byte is Garbage data.

My current settings are,

SIM->SCGC4 |= SIM_SCGC4_UART2_MASK;

SIM->SCGC5 |= SIM_SCGC5_PORTD_MASK;

PORTD->PCR[17] = (3UL <<  8);

PORTD->PCR[16] = (3UL <<  8);

UART2->S1 = 0x00;

setBaudrate(9600);
UART2->C2 = (UART_C2_RE_MASK | UART_C2_TE_MASK);

UART2->S2 = 0x00;
UART2->C3 = 0x00;

UART2->RWFIFO = UART_RWFIFO_RXWATER(1);
UART2->TWFIFO = UART_TWFIFO_TXWATER(0);
UART2->C2 |= UART_C2_RIE_MASK;
/* Enable UART0 Rx Tx  Interrupt in NVIC*/
Enable_IRQ(IRQ_UART2_RX_TX);

/* Enable UART0 Error  in NVIC*/
SET_PRIORITY(IRQ_UART2_RX_TX, 240);

Please correct me if I'm going somewhere wrong,

If possible please provide the driver code.

Thanks

A

ラベル(1)
0 件の賞賛
返信
2 返答(返信)

943件の閲覧回数
Robin_Shen
NXP TechSupport
NXP TechSupport

I write a sample code with PE in CodeWarrior10.5 according to Component Serial_LDD Typical Usage "Block reception/transmission, with interrupt service ".

I use the TWR-K70F120M board , uart2 TxDpin=PTE16  RxDpin=PTE17,Baud rate=38400.

Every time you send a 'e' to RxDpin,the TxDpin will send out 'Hello world' and toggle Green LED(PTA29).

Hope it help

1.jpg

2.jpg

0 件の賞賛
返信

943件の閲覧回数
jeremyzhou
NXP Employee
NXP Employee

Hi Chatre,

UART receiver and transmitter are set able should after other  registers had been configurated.

So you have a try to move the UART2->C2 = (UART_C2_RE_MASK | UART_C2_TE_MASK); to the last of  initialize code.


0 件の賞賛
返信