新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32串口通信中遇到有規(guī)律的亂碼

        STM32串口通信中遇到有規(guī)律的亂碼

        作者: 時間:2016-11-19 來源:網絡 收藏
        這幾天學習調試串口通信,一連好幾天串口收發(fā)的都是亂碼。之前的亂碼毫無規(guī)律,發(fā)現是串口硬件沒有配置好,此處的配置有三處。

        (1)程序中,向量中斷控制器的初始化配置

        本文引用地址:http://www.104case.com/article/201611/318085.htm

        (2)電腦硬件串口設置

        (3)串口調試助手

        這個配置好了之后,串口調試助手顯示的收發(fā)還是和預期的不一樣,不夠程序收發(fā)數據變得有規(guī)律了。如圖:

        發(fā)送a收到q,發(fā)送b顯示r(圖中未顯示),從a到q正好相差16位。而如果發(fā)送漢字的話,還是顯示亂碼。

        這中間嘗試了很多辦法,也調試了好幾天,依然無果。于是我找來開發(fā)板配套的源程序設置(源程序的代碼可以運行,其他的任何代碼都會亂碼),一一對照,之前以為是程序問題。然后我加了stm32的群(118342902),群里的大神看了程序給了一句肯定的話說程序沒有問題。

        其中群主說正好相差16位,說明的最高位的問題。然后我又將源程序的所有設置重新檢查了一遍。最后發(fā)現,,,

        之前是用的括號里的STM32F10X_MD的啟動文件,之后換成STM32F10X_CL之后,一切正常了。

        我使用的是107vc的芯片,啟動文件的設置導致了高位硬性置位。詳細的分析待有時間在說。

        下面把程序貼上。

        main函數:

        中斷函數

        這個程序應該是最簡單的測試程序了。由于keil的能力有限,源代碼不能直接貼上來,只能用圖片的形式上傳上來,不過也沒幾行代碼。



        關鍵詞: STM32串口通信亂

        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 吉水县| 双江| 汝阳县| 忻城县| 丹江口市| 永泰县| 察隅县| 霍州市| 阳山县| 灵山县| 镇平县| 凤凰县| 马边| 昭苏县| 呼伦贝尔市| 云南省| 子长县| 陕西省| 邓州市| 海林市| 乌审旗| 富源县| 玉环县| 永年县| 青岛市| 新民市| 自治县| 内乡县| 科尔| 锦州市| 罗田县| 紫阳县| 尚义县| 分宜县| 衡山县| 贡嘎县| 剑川县| 麻阳| 新源县| 融水| 潼关县|