Re: 求救P18F4520 usart通訊
|
||||
---|---|---|---|---|
資深會員
|
nicecookie大大 ,
我想你應該有講到問題之一,因為昨天寫到半夜很累, 我看昨天在寫啥也亂寫了,剛剛看了程式之後的確有這樣的狀況, 另外lcd顯示的問題,應該不會發生,我是等到全收完後,再做顯示動作,而且只有我發送display cmd給保護板,才會收到板子傳回的資訊,並不會一直收到資料,不過我還是會再檢查一下,也許真的有錯,才會這樣! 真的感謝您的回覆,如有新的想法,煩請您幫我回覆一下! 希望其它高手也能給點意見!
發表於: 2009/9/30 17:30
|
|||
|
Re: 求救P18F4520 usart通訊
|
||||
---|---|---|---|---|
資深會員
|
在if 程式裡面,最後的
else FLAGbits.RXD=0; 感覺怪怪的 那個變數應該是每次都要清除吧 不需要再else 了 是否再檢查一下 ? 感覺這整段RX處理程式邏輯似乎有點怪 好像少判斷甚麼, 還是少了甚麼步驟 沒時間幫你細看, 麻煩自己check一下 ======================================= 你是每收到1byte data就等到main()裡面去處理, 那樣會有個大問題 因為你有LCM要顯示, LCM顯示是很慢的, 可能需要數ms時間 4800bps, 傳1byte資料大概是2.3ms 有可能你1byte資料還沒來的及處理 LCM還沒執行完, 下一byte資料又進來了 還有, 你也用到乘法運算, C18做乘法運算, 時間也是要很久(數百us吧, 不太確定) (乘256, 用左移指令會比較快) 結果會如何? 你的 RX_DATA 會被新進來的data覆蓋掉
發表於: 2009/9/30 17:21
|
|||
|
求救P18F4520 usart通訊
|
||||
---|---|---|---|---|
資深會員
|
各位前輩幫幫忙:
小弟用p18f4520收鋰電池保護板的資訊, 通訊格式4800 8 E 1,因由PIC發送之資料不長, 因此同位元自行算出填入 目前小弟出的問題是一開使無法與保護板溝通, 就先用PC測試,一開使是與PC收送資料都可以, 但接上保護板收送確不行,後來改了程式, 現在連PC溝通都有些問題! 目前PC端使用LOOKRS232來收送 1.於lookrs232設定UART format: Baud Rate =4800bps, Data Bits=8, Stop Bits=1, Parity Check=even., com port1 手動來收發 1.我由pic送出129 101 2 0 0(dec),然後看電腦有收到 129 101 2 0 0(dec) 2.由pc送出 101 2 103 104 105 106 107 108 109 110 111 129(dec) lookrs232 指令-----> 按D 101 2 103 104 105 106 107 108 109 110 111 129 <----(間格都要加空白鍵)共12byte 每個byte間加空格,101 2 為電池ID 129為結束碼 然後由pic接收看是否收到且正確! 目前硬體皆正常,因將pc與保護板連線是ok的(使用lookrs232) pic端使用實驗板,也測試過,也換過板子,都ok 請各位前輩指點一下,小弟已經很努力了 真不知道該怎麼辦? 已經連續1個星期都拼到半夜了! Attach file: Link only for registered users
發表於: 2009/9/30 15:53
|
|||
|