PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC32 - Bộ điều khiển tín hiệu số 32-bit

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

PIC32 - Bộ điều khiển tín hiệu số 32-bit Microchip công bố sản phẩm vi xử lý 32-bit ngày 06/11/2007

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 30-07-2010, 02:06 PM   #1
tungnh
Đệ tử 5 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 94
:
Đã fix được lỗi, mình đã cấu hình đươc cả 6 uart chạy, có điều nếu như cấu hình ngắt uart phải chú ý trong hàm ngăt phải xóa bit OERR trong thanh ghi UxSTA.
Nhưng lại gặp một vấn đề là khi dùng các UART 1B,2B,3B,2A,ngắt nhận xảy ra liên tục mặc dùng chân RX không co tín hiệu.
Anh Nam và mọi người giải thích cho mình với ạ
Code:
void initUart(UART_MODULE id,unsigned int baudrate)
{
UARTConfigure(id,UART_ENABLE_PINS_TX_RX_ONLY); 	    
UARTSetFifoMode(id,UART_INTERRUPT_ON_TX_NOT_FULL |  UART_INTERRUPT_ON_RX_NOT_EMPTY);
UARTSetLineControl(id, UART_DATA_SIZE_8_BITS | UART_PARITY_NONE | UART_STOP_BITS_1);
UARTSetDataRate (id, 10000000, baudrate); //simple 9600 baud 
UARTEnable(id, UART_ENABLE_FLAGS(UART_PERIPHERAL | UART_RX | UART_TX));		
// Configure UART2 RX Interrupt
INTEnable(INT_SOURCE_UART_RX(id), INT_ENABLED);
INTSetVectorPriority(INT_VECTOR_UART(id), INT_PRIORITY_LEVEL_3);
INTSetVectorSubPriority(INT_VECTOR_UART(id), INT_SUB_PRIORITY_LEVEL_0);	    

}
void UART_send_byte(UART_MODULE id,unsigned char byte)
{
	      while(!UARTTransmitterIsReady(id));
	      UARTSendDataByte(id, byte);
	      while(!UARTTransmissionHasCompleted(id));
} 
void __ISR(_UART_2B_VECTOR, ipl3) IntUart2bHandle(void)
{	
	// Is this an RX interrupt?
	if(U2BSTAbits.FERR==0)
	{
	}else U2BSTAbits.FERR=0;
	if(IFS2bits.U2BRXIF ==1)
	{
	IFS2bits.U2BRXIF = 0; 
	LED = 1;
	}
	U2BSTAbits.OERR=0;
}
__________________
Windows CE 6 R3

thay đổi nội dung bởi: tungnh, 30-07-2010 lúc 02:12 PM.
tungnh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-08-2010, 05:31 PM   #2
tungnh
Đệ tử 5 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 94
:
Đã tìm được nguyên nhân lôi. Cả 6 Uart của pic32 đều chạy. Nguyên nhân mình gặp phải là do dung Ethernet starter kit, mình test uart2b, cái chân RX của nó được nối với chân CLK của một con chíp nên cứ cấu hình ngắt nhận thì chíp đơ do cái bit OERR luốn là 1.
Code trên của mình chạy được cả 6 Uart.
Mình gửi các bạn một vài code test về một số module của pic32. thất ra trong cái thư viện plib có hết
File Kèm Theo
File Type: rar code_pic32.rar (59.8 KB, 108 lần tải)
__________________
Windows CE 6 R3
tungnh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 12:30 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam