Re: 請問dspic30f2010的rs232傳輸
|
||||
---|---|---|---|---|
中級會員
|
不好意思,小弟資質愚頓....
還是不太懂大大您的意思勒~~~ 小弟想要按一次按鍵輸入後就要有動作這樣要怎樣設定勒?
發表於: 2009/2/25 20:51
|
|||
|
Re: 請問dspic30f2010的rs232傳輸
|
||||
---|---|---|---|---|
中級會員
|
參照:
我在初始化設定中就已經設定U1STA=0x0000,可是還是每輸入四次訊號才有變化勒~~~
發表於: 2009/2/25 15:22
|
|||
|
Re: 請問dspic30f2010的rs232傳輸
|
||||
---|---|---|---|---|
版主
|
檢查一下,U1STA<URXISEL 1:0> 接收中斷模式選擇位元的設定是否設成 4 比接收中斷一次了,改為 00b
發表於: 2009/2/25 15:19
|
|||
|
Re: 請問dspic30f2010的rs232傳輸
|
||||
---|---|---|---|---|
中級會員
|
參照:
這是接收中斷副程式: void _ISR _U1RXInterrupt(void) { if(U1RXREG==0x0031) {running=1;} if(U1RXREG==0x0032) {running=0;} IFS0bits.U1RXIF=0; }
發表於: 2009/2/25 14:34
|
|||
|
Re: 請問dspic30f2010的rs232傳輸
|
||||
---|---|---|---|---|
中級會員
|
參照:
謝謝版主,問題已經解決,硬體線路有問題。 不過在請問版主chip接收的部分,為什麼我在終端機要連續keyin 4次 才會有反應呢?這跟我的初始化設定有關係嗎?
發表於: 2009/2/25 14:18
|
|||
|
Re: 請問dspic30f2010的rs232傳輸
|
||||
---|---|---|---|---|
版主
|
以 UART 而言,TxD 是要在 Hi,RxD 為輸入所以不可以浮接一定要外接元件或自行拉個 Pull-Up 電阻避免空接的干擾。
發表於: 2009/2/25 13:36
|
|||
|
Re: 請問dspic30f2010的rs232傳輸
|
||||
---|---|---|---|---|
中級會員
|
參照:
請教版主,若沒有傳輸或接收任何訊號時,TX和RX兩支腳位訊號是否應該都要是Hi level才是正確的?
發表於: 2009/2/25 13:28
|
|||
|
Re: 請問dspic30f2010的rs232傳輸
|
||||
---|---|---|---|---|
版主
|
這樣子描述很能去釐清問題點,建議 一點一點的測試來找出問題 :
1. 確定RS-232/UART 的接腳是正確的,如果 RS-232 RXD 不接還會干擾嗎? 2. 用示波器確定一下 RXD 輸入腳 (UART) 如果不敲鍵盤時是否一值是否都在 Hi Lelev,如果維持在Hi 這時接收又在跳動的話,八成是軟體出了問題。如果不再跳動就檢查硬體。
發表於: 2009/2/25 11:47
|
|||
|
請問dspic30f2010的rs232傳輸
|
||||
---|---|---|---|---|
中級會員
|
請教有經驗的大大~~
小弟使用dspic30f2010的chip單純在試RS232的功能,小弟的初始化設定如下: void initRS232(void) { U1MODE=0x8400; //0x8400:ALTIO=1 U1ATX=U1TX U1ARX=U1ARX U1STA=0x0000; U1BRG=((FCY/16)/BAUD)-1; //BAUD=2400 FCY=8000000 IEC0bits.U1RXIE=1; // open U1RX interrupt IEC0bits.U1TXIE=1; // open U1TX interrupt U1STAbits.UTXEN=1; // enable U1TX IFS0bits.U1TXIF=0; IFS0bits.U1RXIF=0; } 和電腦的終端機連線,小弟傳送資料到終端機顯示的值是正確的,但是由鍵盤透過終端機傳回的值(chip接收的值U1RXREG),Debugger模式下的MPLAB ICD2用中斷點看U1RXREG的值時,鍵盤沒有輸入的情況下卻仍然有值(每一次值都不一樣),小弟在接收的中斷那邊純粹用比如說鍵盤輸入1時一個簡單的output燈亮,2時燈滅,但沒有輸入的情況下U1RXREG的值卻會亂跳,有輸入的情況下如輸入1時燈會正常亮,但過一會燈會自己滅掉,表示在沒有鍵盤輸入的情況下數值剛好有亂跳到2,使的燈自動滅掉。 請教各位大大小弟是否有那邊沒有設定到或是沒有注意到的地方呢?感謝賜教囉~~~
發表於: 2009/2/25 11:06
|
|||
|