Re: 關於 COM Port BaudRate的計算~
|
||||
---|---|---|---|---|
版主
|
USB 與 UART2 沒有關聯,各玩各的不會相互干擾,除非是程式架構上糾纏不清才會相互引響。
RCIF 就已經說要用讀取RCREG2 才能清除,所以直接對 RCIF 清除的動作只是自我安慰而已,因為不會有清除的動作發生的。
發表於: 2009/4/30 11:13
|
|||
|
Re: 關於 COM Port BaudRate的計算~
|
||||
---|---|---|---|---|
版主
|
抱歉因為用 461/38400 關係,實際是 61/38400
UART 的接收不建議用Polling 方式接收,那樣態沒有效率了。如果可以的話還是使用中斷方式接收。 當然只要正確收到 UART 資料 RCIF 就會設為 1 ,這與中動致能控制位元 RCIE 沒有關係。清除RCIF 要用讀取 RCREG 的方式清除。
發表於: 2009/4/29 11:47
|
|||
|
Re: 關於 COM Port BaudRate的計算~
|
||||
---|---|---|---|---|
高級會員
|
多謝老大~誤差率應該是0.15%吧! 怎麼您算出來這麼大?
另外一問,因為我這顆Pic還有使用USB,USART 打算用Polling的,如果我使用C18 提供的 Open2USART ( 0xFF& USART_TX_INT_OFF& USART_RX_INT_OFF& //關閉接收的interrupt USART_ASYNCH_MODE& USART_EIGHT_BIT& USART_CONT_RX& USART_BRGH_HIGH, 38) 請問當有資料進來時, PIR3 的 RC2IF 還會被設起來嗎?
發表於: 2009/4/28 15:46
|
|||
|
Re: 關於 COM Port BaudRate的計算~
|
||||
---|---|---|---|---|
版主
|
BaudRate = fosc/ [(SPBRG+1)*16]
38400= 24000000/ [(SPBRG+1)*16] SPBRG= 38 時計算出 bps=38461 誤差 = (38461-38400)/38400= 1.2% 如果要沒誤差用 18.432MHz , SPBRG=29 , 誤差=0% 送給所有的周邊
發表於: 2009/4/28 14:56
|
|||
|
關於 COM Port BaudRate的計算~
|
||||
---|---|---|---|---|
高級會員
|
小弟目前要使用一個USART,BaudRate 要到38400
看之前上課的講義,有介紹 BaudRate = fosc/ [(SPBRG+1)*16] 於是就開始找我現在使用的Fosc 是多少, 問題如下...我的 FOSC 是 24 MHz嗎? 另外還有一問, 那個Peripherals 是送給哪些週邊阿?
發表於: 2009/4/28 14:42
|
|||
|