• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users




« 1 (2)


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#7
新會員
新會員


查看用戶資訊
有,上週已經上過 pic16 的課了,明天也要上 pic18 的課,但還是覺得小無力...

有人可以幫忙試試看在下的程式碼嗎? 很怕不是程式碼的問題,而是在下環境設置的問題

發表於: 2008/1/15 16:16
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#6
版主
版主


查看用戶資訊
那來參加 Microchip 的 RTC 上課,這樣比較快進入狀況。右邊有 RTC 的課程表。

發表於: 2008/1/15 16:11
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#5
新會員
新會員


查看用戶資訊
應該是有示波器啦,只是在下不會用而已

不要說示波器,就連 PIC 在下都是第一次接觸,所以很多都不了解

在下用 AccessPort 所得到的結果,也可以轉成 Hex,但都不是在下當初所傳過去的值

發表於: 2008/1/15 15:24
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#4
版主
版主


查看用戶資訊
因為 RCIF 沒有情除的關係,要將RCIF輕靈的方式將只有讀取 RCREG 才可以清除 RCIF

送回去的應該是 0x41 (ASCII Code = A),用示波器良醫下就知道了。不要說公司沒有示波器....

發表於: 2008/1/15 15:13
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#3
新會員
新會員


查看用戶資訊
是的,就是 ASCII Code '0'。


書上是寫當 SPBRG = 130 且 BRGH = 1 時,Baud-Rate 約為 9600 bps,且系統時脈頻率為 20 MHz。

另外再請教一下,當我將下半段的程式改成
while (1)
    {
        if (
RCIF == 1)
        {
            
TXREG 'A';
        }
    }

時,期望程式能夠在收到任一字元的情況下,都回傳一個 'A' 回來,但實際上程式卻是進入了無窮迴圈,不斷的跑出同樣的亂碼回來,這是怎麼回事呢?

在下也試著在 TXREG = 'A'; 的下一行加入 RCIF = 0;,但結果一樣

發表於: 2008/1/15 15:02
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 透過 RS232 向 PIC16F877A 收發資料有問題
#2
版主
版主


查看用戶資訊
1. 所送出去的'0'是指 ASCII Code '0' 嗎? 如果是這樣那這個ASCII Code 字元'0',也就是Hex的 0x30
所以請先確定所送出的碼為何?

2. 程式看起來是沒有錯誤,如有的化是 baud-Rate 的設定,確定是9600bps? 用視波器量一下速度?

發表於: 2008/1/15 14:48
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


透過 RS232 向 PIC16F877A 收發資料有問題
#1
新會員
新會員


查看用戶資訊
在下這兩天試著透過 RS232 向 PIC16F877A 收發資料,最終目的是期望利用 PIC 可以量測電壓,這對板上高手來說,或許跟作業沒兩樣,可是因為公司裡只有在下在碰 PIC,所以特別苦手。

在下有在網路上找到一些程式碼,目的是當在下發送一個字元給 PIC 時,PIC 會回傳同樣的字元回來,因為要先能夠得到輸出,才能夠繼續之後 ADC 的動作。

但經過在下利用 AccessPort 這套軟體測試時,發現當在下送 '0' 過去,期望回來同樣是 '0' 後,實際上卻只得到一小點 '.',而其 Hex 為 00,不知道是哪邊出錯了呢?

ps. COM1 (9600, N, 8, 1)

程式碼如下:
#include <pic.h>

void main()
{
    
SPBRG 130;
    
BRGH 1;    
    
TXEN 1;
    
SPEN 1;
    
CREN 1;

    while (
1)
    {
        if (
RCIF == 1)
            
TXREG RCREG;
    }
}


先謝過了

發表於: 2008/1/15 14:38
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------