1. 程式人生 > >STM32除錯筆記之USART-波特率

STM32除錯筆記之USART-波特率

  設計了一個串列埠通訊電路:CPU 接 光電隔離IC 再接MAX3232;除錯時發現串列埠助手裡一直是亂碼,而且示波器測得的波形也老是抓不到波形(不怪示波器,怪我水平太低了。。。);浪費了一個晚上時間,後來請同事幫忙,他幫我打開了串列埠助手中的“HEX顯示”(新技能get),這樣就能看串列埠發出來的實際二進位制資料是什麼了;這個時候他一看資料結果,和我實際傳送的明顯不一樣,一下就懷疑到了波特率的問題;波特率改小之後,問題完美解決。

  網上關於位元率和波特率的描述如下: 位元率=波特率X單個調製狀態對應的二進位制位數;即,兩相調製(單個調製狀態對應1個二進位制位)的位元率等於波特率;四相調製(單個調製狀態對應2個二進位制位)的位元率為波特率的兩倍;八相調製(單個調製狀態對應3個二進位制位)的位元率為波特率的三倍;依次類推。

  通過調整波特率實際測試輸出的波形,發現隨著波特率升高波形的上升 下降沿明顯變得不再陡峭;歸根結底是由於硬體電路的電容效應。

相關推薦

STM32除錯筆記USART-波特率

  設計了一個串列埠通訊電路:CPU 接 光電隔離IC 再接MAX3232;除錯時發現串列埠助手裡一直是亂碼,而且示波器測得的波形也老是抓不到波形(不怪示波器,怪我水平太低了。。。);浪費了一個晚上時間,後來請同事幫忙,他幫我打開了串列埠助手中的“HEX顯示”(新技能get

除錯筆記雨過天晴多點還原軟體MBR例項

                 BY SUDAMI為了能夠除錯多點還原軟體"雨過天晴"的啟動程式碼,目前有2種方式:引用:(1) 在Bochs偵錯程式上裝Windows XP系統,然後用Bochs單步除錯. 不過光安裝作業系統就得花20個小時以上(2) 用Wnhex克隆整個磁碟,配置Bochs的*.bxrc

STM32學習筆記ADC轉換

1. ADC簡介 stm32f103最少有2個AD模數轉換器,每個ADC都有18個通道,可以測量16個外部和2個內部模擬量。最大轉換頻率為1Mhz,也就是轉換時間為1us(在 ADCCLK = 14Mhz,取樣週期為1.5個時鐘週期時)。最大時鐘超過14Mhz,將導致ADC轉換準確度降低。stm32的A

STM32學習筆記ADC--DMA方式

}/*************************************************函式: void DMA_Config(void)功能: DMA配置 引數: 無返回: 無**************************************************/void DMA

STM32學習筆記GPIO輸入與輸出

        1、核心點:對於任意MCU中的外設(模組)操作方法:都是找該模組的工作框圖,根據框圖來寫程式        對於ST中的任何一個外設,都是掛載在不同的時鐘線下的,所有的時鐘線預設都是關閉的;在使用該外設之前,要開啟該外設的時鐘        步驟1 :    

STM32學習筆記Keil工程Lib庫檔案的製作和運用

    最近看了百度手環開源專案,發現所有的演算法都被封裝成了一個lib檔案在keil中呼叫 也是第一次學習到。 問題引出:為什麼要做成lib庫? 1、有些方案公司為了將自己寫的關鍵部分原始碼不進行公開,但是同時庫檔案又需要讓別人能夠正常呼叫,那封裝成lib的格式就是一

STM32學習筆記USB虛擬串列埠描述符簡介

Descriptor即描述符,是一個完整的資料結構,可以通過C語言等程式設計實現,並存儲在USB裝置中,用於描述一個USB裝置的所有屬性,USB主機是通過一系列命令來要求裝置傳送這些資訊的。它的作用就是通過如問答節中的命令***作來給主機傳遞資訊,從而讓主機知道裝置具有

STM32學習筆記(7)——USART串口的使用

工作 清除 ESS 界面 默認 支持 oat channels 函數 1、 串口的基本概念 在STM32的參考手冊中,串口被描述成通用同步異步收發器(USART),它提供了一種靈活的方法與使用工業標準NRZ異步串行數據格式的外部設備之間進行全雙工數據交換。U

STM32入門學習筆記Interrupts and events

    一、Nested vectored interrupt controller (NVIC巢狀向量中斷控制器) 用於為中斷分組,從而分配搶佔優先順序和響應優先順序 根據STM32的中斷數量,分成5組 1、NVIC_PriorotyGroupConf

物聯網STM32開發三(USART串列埠)

STM32-USART串列埠的應用 內容概要: 序列通訊的基本概念 串列埠暫存器介紹 STM32實現串列埠資料的收發 HAL串列埠庫函式的使用及printf的實現 序列通訊的基本概念: 內容概要: 通訊的基本概念 USART介紹 串列埠的電路連線 串列埠

【開發工具】[Jlink]:STM32 MDK Jlink 除錯筆記

1.錯誤資訊如下: JLink info: ----------- DLL: V4.08b, compiled Jun 30 2009 19:10:31 Firmware: J-Link ARM V8 compiled Dec  1 2009 11:42:48 Hardwa

linux裝置驅動學習筆記--核心除錯方法printk

1,printk類似於使用者態的printf函式,但是比printf函式多了一個日誌級別,核心中最常見的日誌輸出都是通過呼叫printk來實現的,其列印級別有8種可能的記錄字串, 在標頭檔案 <linux/kernel.h> 裡定義: KERN_EMERG

STM32學習筆記——GPIO從庫函式到暫存器

/**   * @brief  Initializes the GPIOx peripheral according to the specified   *         parameters in the GPIO_InitStruct.   * @param  GPIOx: where x can 

STM32--SPI配置nrf24l01除錯筆記

TX模式和RX模式 地址配置 //傳送/接收地址一 const u8 TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //傳送地址 cons

Spark學習筆記-Spark遠端除錯

Spark遠端除錯 本例子介紹簡單介紹spark一種遠端除錯方法,使用的IDE是IntelliJ IDEA。 1、瞭解jvm一些引數屬性 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,addres

讀書筆記《格蠹彙編-軟體除錯案例集錦》

17. MSN的死迴圈。CPU佔用100%有2種情況,第一種:病毒掃描程式或索引服務需要處理大量事務,第二種:程式BUG內部死迴圈。MSN屬於第二種,WinDbg附加程序。尋找死迴圈執行緒。方法有4種,方法1:如果是GUI程式,介面失去響應,一般是UI執行緒問題,通常0號執行緒就是UI執行緒。方法2:使用~*

linux裝置驅動學習筆記--核心除錯方法proc(補充seq_file)

上一節中的proc實現對於開關檔案,控制檔案,以及顯示很少資訊的檔案來說還是比較簡單的,但是對於需要輸出大量資訊像meminfo,或者結構化的資訊像cpuinfo等時就會顯得很笨拙,並且程式碼也很不好理解與維護。核心為了簡化這種proc檔案的實現提供了另外一種方案----s

STM32 USB Mass Storage 例程除錯筆記

一、問題起因      近來有幾個客戶反映STM3210E的開發板的USB Mass Storage 例程有點問題,組長安排我來除錯。Mass Storage例程在PC上實現兩個U盤,一個是SD盤,一個是NAND Flash盤,把程式下載到開發板後,PC上能夠檢測到NA

Kinect開發筆記四檢測並除錯Kinect裝置

       之前我們已經裝好了Developer Toolkit 1.8,下面我們來做進一步的測試。        首先到開始選單中找到Kinect for Windows SDK v1.8,

STM32例程FATFS檔案系統(SPI方式)移植筆記(原始碼下載)

STM32的FATFS檔案系統移植筆記 一、序言     經常在網上、群裡看到很多人問關於STM32的FATFS檔案系統移植的問題,剛好自己最近也在除錯這個程式,為了讓大家少走彎路,我把我的除錯過程和方法也貢獻給大家。 二、FATFS簡介     FatFs Module