/****PIC18F45K80單片機串口調試總結—Sandy*********Start of file***********/
文件名:PIC18F45K80單片機串口調試總結
/***************************瘟 雞 工 作 室********************************/
PIC18F45K80單片機串口調試總結
今天調試了PIC18F45K80單片機的串口模塊,本來以為很簡單的,去花了比較長的時間去調試,接上串口,啟動串口調試助手,使用以下的配置函數是可以使調試助手收到數據的,但是一直出現單片機發送的數據跟接收到的數據不一致。
void pic_uart_init(void)
{
UART1MD = 0; //使能寄存器
/*端口配置 RC6__TX RC7__RX*/
TRISC6 = 1; //RC6配置為輸入,手冊中明確說明
TRISC7 = 1; //RC7配置為輸入,手冊中明確說明
/*波特率配置*/
BAUDCON1bits.BRG16 = 0; //使用8位波特率模式
SPBRG1 = 103; //9600波特率
BAUDCON1bits.ABDEN = 0; //禁止波特率測量
/*接收與發送配置配置*/
TXSTA1 = 0x24; //發送配置
RCSTA1 = 0x90; //接收配置
/*中斷配置*/
RC1IE=1; //開啟串口中斷
}
這時出現數據的錯誤我就在想原因,第一個想到的是波特率配置問題,嘗試了很多次還是出現相同的問題,第二個我想到的是系統時鐘問題比如時鐘偏差,時鐘分頻沒有設置對,也試了很多但都沒有找到問題。在網上找到的資料跟我上面所配置的差不多。所以一時迷茫了。就拿來示波器,抓了下波形,發現了空閑時的電平問題,后來我又翻開數據手冊。果然發現BAUDCON1寄存器中有以下兩位,網上找了很多資料是沒有提到的。
然后我就修改了一下我的配置函數:如下
void pic_uart_init(void)
{
UART1MD = 0; //使能寄存器
/*端口配置 RC6__TX RC7__RX*/
TRISC6 = 1; //RC6配置為輸入,手冊中明確說明
TRISC7 = 1; //RC7配置為輸入,手冊中明確說明
/*波特率配置*/
BAUDCON1bits.BRG16 = 0; //使用8位波特率模式
SPBRG1 = 103; //9600波特率
BAUDCON1bits.ABDEN = 0; //禁止波特率測量
//以下兩句非常重要
BAUDCON1bits.TXCKP = 1; //空閑狀態下保持低電平。
BAUDCON1bits.RXDTP = 1; //接收電平反向。
/*接收與發送配置配置*/
TXSTA1 = 0x24; //發送配置
RCSTA1 = 0x90; //接收配置
/*中斷配置*/
RC1IE=1; //開啟串口中斷
}
加上紅色的那兩句語句后接收和發送都正常了。我是說針對我的串口調試器正常了,我覺得應該有兩種串口調試器,我是說空閑時電平不同的兩種,或高電平,或低電平。如果有調試時發現發送錯誤可以試試改變空閑時的電平。
在調試時如果我們要用示波器去看串口的波特率,我們可以發送0XAA 或0X55 來抓取周期,從而計算出波特率。
/***************我所理解的 XXX—Sandy**************End of file*************/
上一篇:pic 18f45k80單片機eeprom模塊代碼
下一篇:PIC18**K80配置位詳解
推薦閱讀
史海拾趣
隨著全球環保意識的不斷提高,Astec也開始關注綠色環保和可持續發展問題。公司積極采用環保材料和節能技術,推出了一系列綠色電源產品。同時,Astec還加大了對環保技術的研發力度,努力在保持產品性能的同時,降低生產過程中的能耗和排放。這些舉措不僅有助于公司應對環保法規的挑戰,還提升了公司的社會形象。
隨著觸控技術的興起,Azoteq在2004年增加了第二條產品線,以應對新興的電容式觸摸和接近感應產品市場。這一舉措使得Azoteq能夠緊跟市場趨勢,為客戶提供更多樣化的產品選擇。通過不斷的技術創新和市場拓展,Azoteq在這一領域逐漸取得了領先地位。
隨著全球化進程的加速推進,E-Z-HOOK公司開始積極拓展國際市場。他們通過參加國際展會、建立海外銷售網絡等方式,將產品推向全球各地。同時,公司還積極尋求與國際知名企業的合作機會,共同開發新技術和新產品。這些努力使得E-Z-HOOK公司的品牌影響力逐漸擴大,在全球范圍內樹立了良好的聲譽和形象。
在國內市場取得成功后,東軟載波開始積極拓展國際市場。公司憑借豐富的產品線和領先的技術實力,成功進入中亞、東南亞、非洲和南美等地區,產品在這些地區得到了廣泛應用。國際市場的拓展不僅為東軟載波帶來了更多的業務機會,還進一步提升了公司的品牌影響力和國際競爭力。
隨著公司規模的擴大和產品線的豐富,ECM Electronics Limited.開始積極拓展市場。公司不僅在國內市場取得了良好的銷售業績,還積極開拓國際市場,將產品出口到多個國家和地區。為了更好地服務全球客戶,公司還設立了海外辦事處和研發中心,加強與國際市場的聯系和合作。通過國際化戰略的實施,ECM進一步提升了品牌知名度和市場競爭力。
在電子行業中,產品質量是企業生存和發展的關鍵。成都成電硅海公司深知這一點,因此在生產過程中嚴格把控每一個環節。公司引進了先進的生產設備和技術,建立了完善的質量檢測體系。每一批產品出廠前都要經過嚴格的質量檢測,確保產品性能的穩定和可靠。這種對品質的執著追求,使得成都成電硅海公司的產品在市場上贏得了良好的口碑。
本帖最后由 jameswangsynnex 于 2015-3-3 19:58 編輯 標準型草坪燈,整個燈具為全塑材料,燈高120mm,支柱直徑29mm,內由55×55mm太陽能電池板一塊、500MA鎳氫電池一節、LED燈管一只組成。全新原包裝,附帶25cm支架一套,便于使用。太陽能草坪燈主 ...… 查看全部問答∨ |
|
約兩年后,TI推出了其新一代OMAP系列移動應用處理器(AP)——備受關注的OMAP3530。廣受歡迎的OMAP系列移動AP還包括OMAP2420,它已被用在諸如諾基亞N93和N95等多種移動消費應用中。TechInsight分支機構SemiconductorInsights最近進行了一個初步分析以 ...… 查看全部問答∨ |
|
背景: 我在網上下載了5.0mini2440到6.0的BSP,但是在編譯的時候出現錯誤,于是,我打算在此基礎之上進行移植。它的bootloader我沒有動,把SRC目錄中的dir中去掉driver,只編譯:common,oal和bootloader.FILES目錄下的platform.reg,platform.bib和 ...… 查看全部問答∨ |
|
基頂盒程序從LST平臺移植到ST平臺后,因ST平臺的編譯器不支持64位整型,但程序要實現64位整型的除法運算,請大家幫忙用32位整型實現64位整型的除法運算,或提供相關算法,謝謝!!!!!!!… 查看全部問答∨ |
|
高容量SD card CSD寄存器與低容量CSD寄存器有什么區別呢? CSD register of High capability SD card 難道僅僅只有返回的Device size(C_Size)是block數目還是byte數目有區別嗎? 哪位有表格對比或者寄存器圖示之類的請分享一下,十分感謝。… 查看全部問答∨ |
要求:電腦文本中有三行數字,我想把它分別傳給三個連接的單片機A、B和C上,其中第一行傳給單片機A,第二行傳給單片機B,每三行傳給單片機C. 然后單片機帶動三個步進電機。 例如,電腦上文本有三行數字: 0 2 1 ...… 查看全部問答∨ |