PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

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

Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 25-06-2009, 05:49 PM   #1
thuongshoo
Đệ tử 1 túi
 
Tham gia ngày: Feb 2008
Bài gửi: 21
:
Rs232 và Mplab không được. Nhờ bắt lỗi dùm

đây là toàn bộ chương trình của mình.
Mình xài 18F4550. Xài thư viện của MCC18 thì chỉ xuất ra số 0. Còn xài cái đoạn set thanh ghi thì không thấy gì hết
chương trình us- burn nói là PIC mà mình đang xài là rev 06. Mình thấy tài liệu err v6 có nói tới phần Rs232 này. Mình đã viết lại cái union liên quan đến baudrate nhưng vẫn không được
Code:
#include <p18f4550.h>
#include <delays.h>
#include <usart.h>
//#include "SW_UART/sw_uart_18f97j60.h"
// turn off extend CPU instruction
//#pragma config XINST = OFF
 #pragma config PLLDIV   = 5         // (20 MHz crystal on PICDEM FS USB board)
        #pragma config CPUDIV   = OSC1_PLL2   
        #pragma config USBDIV   = 2         // Clock source from 96MHz PLL/2
        #pragma config FOSC     = HSPLL_HS
        #pragma config FCMEN    = OFF
        #pragma config IESO     = OFF
        #pragma config PWRT     = OFF
        #pragma config BOR      = ON
        #pragma config BORV     = 3
        #pragma config VREGEN   = ON      //USB Voltage Regulator
        #pragma config WDT      = OFF
        #pragma config WDTPS    = 32768
        #pragma config MCLRE    = ON
        #pragma config LPT1OSC  = OFF
        #pragma config PBADEN   = OFF
//      #pragma config CCP2MX   = ON
        #pragma config STVREN   = ON
        #pragma config LVP      = OFF
//      #pragma config ICPRT    = OFF       // Dedicated In-Circuit Debug/Programming
        #pragma config XINST    = OFF       // Extended Instruction Set
        #pragma config CP0      = OFF
        #pragma config CP1      = OFF
//      #pragma config CP2      = OFF
//      #pragma config CP3      = OFF
        #pragma config CPB      = OFF
//      #pragma config CPD      = OFF
        #pragma config WRT0     = OFF
        #pragma config WRT1     = OFF
//      #pragma config WRT2     = OFF
//      #pragma config WRT3     = OFF
        #pragma config WRTB     = OFF       // Boot Block Write Protection
        #pragma config WRTC     = OFF
//      #pragma config WRTD     = OFF
        #pragma config EBTR0    = OFF
        #pragma config EBTR1    = OFF
//      #pragma config EBTR2    = OFF
//      #pragma config EBTR3    = OFF
        #pragma config EBTRB    = OFF
		
volatile   union 
  {
	  struct 
	  {
		unsigned ABDEN:1;
		unsigned WUE:1;
		unsigned :1;
		unsigned BRG16:1;
		unsigned TXCKP:1;
		unsigned RXDTP:1;
		unsigned RCIDL:1;
		unsigned ABDOVF:1;
	  };
	  struct 
	  {
		unsigned :6;
		unsigned RCMT:1;
	  };
  } BAUDCONbitsV6;
void main(void)
{
  char data;
  char array[5];
	
	//TRISC = 0; 
	//TRISC = 0;
	//output
	TRISCbits.TRISC6 = 0 ;
	//input
	TRISCbits.TRISC7 = 1 ;
	//TRISA = 0; 
#if 1	
	TXSTAbits.TX9 = 0;
	TXSTAbits.TXEN = 1;
	TXSTAbits.SYNC = 0;
	TXSTAbits.SENDB = 0;
	TXSTAbits.BRGH = 1;
	TXSTAbits.TX9D = 0;
	
	RCSTAbits.SPEN = 1;
	RCSTAbits.RX9 = 0;
	RCSTAbits.CREN = 1;
	//RCSTAbits.FERR = 1;
	//RCSTAbits.OERR = 1;
	RCSTAbits.RX9D = 0;
	
	
	BAUDCONbitsV6.ABDOVF = 0;
	BAUDCONbitsV6.RCIDL = 1;
	BAUDCONbitsV6.RXDTP = 1 ;
	BAUDCONbitsV6.TXCKP = 1 ;
	BAUDCONbitsV6.BRG16 = 0;
	BAUDCONbitsV6.WUE = 0;
	BAUDCONbitsV6.ABDEN = 0;
	
	SPBRGH = 0 ;
	SPBRG  =  0x81;//0x81;
	 
	while (1)
	{ 
		//while( TXSTAbits.TRMT == 0  );
				   PORTCbits.TX = 65;
		Delay10KTCYx(0 );
		Delay10KTCYx(0 ); 
	}			   
#endif	
#if 0
	
	
	OpenUSART (    
			USART_TX_INT_OFF &
             USART_RX_INT_OFF &
             USART_ASYNCH_MODE &
             USART_EIGHT_BIT &
             USART_CONT_RX &
             USART_BRGH_HIGH,
			129);//129 31 32
	 baudUSART( BAUD_IDLE_CLK_HIGH &
			BAUD_8_BIT_RATE &
			BAUD_WAKEUP_OFF &
			BAUD_AUTO_OFF
	    	); 		 

	//TRISG = 0; // RS485
	while (1)
	{ 
		//PORTGbits.RG5 = 1; //RS485 
 
	 	//while(BusyUSART());
    	putcUSART('a');
		//WriteUSART('a');
		Delay10KTCYx(0 );
		Delay10KTCYx(0 );
		

	}
	CloseUSART(); 
#endif
	
}//end main

/** EOF main.c ***************************************************************/
thuongshoo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


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à 07:41 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