原创 keil軟件仿真時,程序不能正常運行解決方法

        在用keil軟件調試程序時,有時候手頭沒有硬件電路板,就需要用到軟件仿真功能。但是使用軟件仿真時經常出現一個問題,就是開始仿真後,程序就會卡在系統初始化函數中。 程序停在時鐘設置這裏就不動了,不能進入主函數。 引起這個的

原创 串口波形顯示軟件SerialChart的使用

      單片機開發過程中串口是最常用的調試手段,可以將代碼運行過程中的各種變量通過串口發送出來,以便觀察程序的運行狀態。 特別是在調試傳感器採集數據時,可以通過串口來分析採樣數據。但是單純的看數據很難觀察出來數據曲線的走勢,如果可以將

原创 推薦一款好用的截圖軟件Faststone capture

       平時寫博客或者寫項目文檔時,經常需要用圖片來更直觀的描述問題,這時候如果有一款方便快捷的截圖軟件就能提高不少工作效率,雖說Windows自帶的截圖軟件也能用,但是功能還是比較簡單。        今天介紹一款一直使用的一個截

原创 STM8學習筆記---ADC多通道採樣

STM8S003單片機ADC採樣通道總共有5個,從AIN2---AIN6,多通道採樣時需要將ADC轉換設置爲單次轉換模式,每次切換採樣通道後,需要重新初始化 ADC,採樣結果在中斷中讀取。 IO口初始化代碼 //AD通道引腳初始化 vo

原创 STM8單片機串口發送引腳和接收引腳分開使用

       在使用STM8S003單片機時,需要用到ADC採樣功能,STM8S003總共有5個ADC採樣口,但是其中兩個採樣口是和串口複用的,如果當ADC口用,就不能用串口,如果當串口用,就不能用ADC口。        通過芯片管腳

原创 485通信自動收發數據實現

       485通信是工業控制中很常用的一種通信方式,但是編寫通信程序的時候需要在代碼中手動控制接收和發送,如果接收和發送邏輯沒處理好往往會造成通信故障,實現起來比較麻煩。那能不能讓485通信是接收和發送數據可以自動切換,不用程序去控

原创 編程利器 Beyond Compare 的使用

      在寫程序的時候,經常會出現一種情況。就是代碼稍微動了一點,但是執行的結果卻完全不同。那到底是改動了哪裏造成這種情況,就需要把改動的地方一個一個又恢復回去,挨個排查問題。但是不一定每次都能清晰的記得上一次改動過那些地方,查找問題

原创 STM8學習筆記----普通IO口模擬串口功能

        串口在產品應用中很常見,但是單片機的默認帶的串口往往比較少,有時候就會出現串口不夠用,所以就想着能不能用普通IO口模擬串口來實現串口的功能。         要模擬串口首先要清楚串口數據傳輸過程中的原理。  常用的串口格

原创 STM8學習筆記----PWM單脈衝模式輸出

先看看官方資料對單脈衝模式的介紹 下面看C代碼的實現 void PWM_GPIO_Init( void ) { PC_DDR_DDR6 = 1; //輸出管腳 P

原创 單片機ADC採樣算法----限幅濾波法

        限幅濾波法就是通過軟件來限制本次採樣值的上次採樣值的偏差,若本次採樣值和上次採樣值的偏差超過了設定的最大偏差值,則丟棄本次的採樣值。        下面看C代碼的實現 //返回兩個整數差 unsigned int num

原创 keil編譯器如何生成二進制bin文件

keil編譯器默認生成的是16進制的hex文件,但是有時候需要生成二進制的bin文件,可以使用kei自帶的二進制轉換工具來實現。 首先在keil安裝目錄中找到 ARMCC文件夾,然後打開裏面bin文件夾,找到fromelf.exe

原创 STM103單片機串口輸出函數printf重映射

在調試程序的時候經常需要使用printf’函數來打印相關調試信息,在STM103單片機中printf函數默認只能在串口1使用,有時候串口1被佔用了,想要輸出調試信息時會比較麻煩。現在就總結一下如何在其他串口上使用printf函數。

原创 Keil軟件仿真時如何用邏輯分析儀觀察變量值

在調試代碼的時候,有時候手頭上沒有硬件環境,就需要用到純軟件仿真。下面先看一下要測試的代碼。 #include "sys.h" #include "delay.h" #include "usart.h" #include "led

原创 keil中如何查看代碼大小

在用keil編譯完代碼後,會生成編譯信息 (1) Code(inc.Data) : 包含兩部分,即代碼和數據 - code,即程序代碼部分 - inline data. For example, literal pools(文字

原创 STM8學習筆記---定時器 TIM2功能實現

STM8的TIM2、TIM3、TIM5是16位通用寄存器,他們的操作方法一樣。 主要功能如下 相關寄存器如下: 如果只用到定時功能的話,需要用到的寄存器有自動裝載寄存器ARR、預分頻寄存器PSCR、事件產生寄存器EGR、狀態寄