Re: pic24f uart傳輸疑問
|
||||
---|---|---|---|---|
新會員
|
我也有一樣問題!!
我覺的問題在 while(!U1STAbits.TRMT); <-------- U1TXREG = 'C'; 同樣程式在24fj128ga010就沒問題. 以下是我的程式
#define byte unsigned char
發表於: 2007/8/31 11:42
|
|||
|
Re: pic24f uart傳輸疑問
|
||||
---|---|---|---|---|
版主
|
除錯模式下能正常執行程式,就代表程式及 Config 的設定沒有問題。請改用 Programmer Mode 來燒錄。
發表於: 2007/8/30 15:50
|
|||
|
Re: pic24f uart傳輸疑問
|
||||
---|---|---|---|---|
資深會員
|
先感謝版主回應,今過這幾天的測驗
我是覺得是我的石英震盪器出現問題,我本來用30MHZ 計算Baud Rate =(15M/9600/16)-1 但用邏輯分析儀觀測的結果是有問題的。 後來我將石英震盪器換成7.6MHZ,在使用PLL*4 Baud Rate=(7.6M*2/9600/16)-1 這樣設定的結果是OK的,UART的Baud Rate 是正常的 不過現再又遇到一個問題,我利用LCD2 LE在除錯模式中 不論發射或接收都正常,但我把程式要燒錄到IC後 就再也收不到了,這讓我很納悶,我想請問一下PLL的設定 是在Register CONFIG下做設定嗎? 還是那只試用於除錯模式下,要燒錄是否還要進行什麼設定 我的Register CONFIG設定如下 _CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & COE_OFF & ICS_PGx2 & FWDTEN_OFF & WINDIS_OFF & FWPSA_PR128 & WDTPS_PS32768 ) _CONFIG2( IESO_OFF & FNOSC_PRIPLL & FCKSM_CSDCMD & OSCIOFNC_OFF & IOL1WAY_OFF & I2C1SEL_PRI & POSCMOD_XT )
發表於: 2007/8/27 21:48
|
|||
|
Re: pic24f uart傳輸疑問
|
||||
---|---|---|---|---|
版主
|
應該是Baud Rate 算錯,將計算的程式po出來討論一下吧!
你也可以試著修改Baud Rate看看有沒有變化,去揣摩一下公式的內容。
發表於: 2007/8/24 9:41
|
|||
|
Re: pic24f uart傳輸疑問
|
||||
---|---|---|---|---|
版主
|
應該是Baud Rate 算錯,將計算的程式po出來討論一下吧!
你也可以試著修改Baud Rate看看有沒有變化,去揣摩一下公式的內容。
發表於: 2007/8/24 9:41
|
|||
|
Re: pic24f uart傳輸疑問
|
||||
---|---|---|---|---|
資深會員
|
資料確定有出來,我用示波器看過
我是用icd2除錯,但輸出訊號很奇怪,如果是9600 一個BIT的時間因在104us左右,但我跑出來的卻在xxmS 這讓我很納悶! 因為這和DATA上的公式誤差太大了! 會誤差這麼大我想會不會是我的石英震盪器出了問題 難道PIC24F不能接30MHZ的震盪器嗎? 還是接30M的震盪器,什麼地方要設定嗎?
發表於: 2007/8/24 9:24
|
|||
|
Re: pic24f uart傳輸疑問
|
||||
---|---|---|---|---|
版主
|
看程式沒做實驗只能用猜的回答問題,做實驗嗎真的很花時間,這樣吧! 你應該找一台示波器 : 第一量一下資料到底有沒有送出來? 如果有送出來量一下時間揪知道的 Baud Rate。
你有用 ICD2 除錯嗎?
發表於: 2007/8/24 9:02
|
|||
|
pic24f uart傳輸疑問
|
||||
---|---|---|---|---|
資深會員
|
我想請問一下
鮑率的算法不是((FCY/BAUDRATE)/16)-1 而fcy=外接震盪器嗎? 但是我照公式這樣設定還是有問題 我不管這麼傳送PC上都收不到資料 後來我接邏輯分析儀來看,發現我本來設定9600的鮑率 完全跑掉!這讓我很納悶難道我公式帶錯了嗎? 我外接震盪器為30MHZ 鮑率=194 後來我在網站上看到資料說FCY=外接震盪器\2 這樣鮑率=96 但我設定這兩個值我PC上都收不到資料,請問是我的震盪器有問題,還是我的CONFIG有設定錯誤阿! 因為除了這兩個有問題外,我實在想不出來還有什麼問題了 ================================== #include<p24fj64ga002.h> #include<uart.h> _CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & COE_OFF & ICS_PGx2 &FWDTEN_OFF & WINDIS_OFF & FWPSA_PR128 & WDTPS_PS32768) _CONFIG2( IESO_OFF & FNOSC_PRI & FCKSM_CSDCMD & OSCIOFNC_OFF & IOL1WAY_OFF & I2C1SEL_PRI & POSCMOD_HS ) int main(void) { unsigned int U1MODEvalue; unsigned int U1STAvalue; unsigned int Baudvalue; CloseUART1(); U1MODEvalue=UART_EN|UART_BRGH_SIXTEEN ; U1STAvalue=UART_TX_ENABLE|UART_RX_OVERRUN_CLR_MASK; Baudvalue=194; OpenUART1(U1MODEvalue,U1STAvalue,Baudvalue); _U1RXR=9; _RP8R=3; a=0; while(1) { while(BusyUART1()); WriteUART1('A'); } }
發表於: 2007/8/23 21:25
|
|||
|