最近在做專案,遇到個非常奇怪的問題,在程式執行時,定義的變數無緣無故就被清0了,在debug的時候,發現變數的被清零的時間不確定,有時候可能是執行一遍程式就被清零了,有時候可能是兩三次。可是查了很多次。程式中都沒有對這個變數做清零處理。。在網上也檢視了一些帖子。。有的說是可能是某個陣列越界操作導致的變數被清零。。自己想了一下。。也不能排除這種可能。。。由於自己實力有限也沒有真疼到底是不是真的就是陣列越界導致的。。
解決方法。。
方法一:在被清零的變數前面定義了乙個變數。。就解決了這個問題。。這個方法不靠譜給人感覺就像是真的是陣列越界導致的。
方法二: 由於自己習慣問題,使用的變數都是在幾個函式的中間定義的。。當我把變數的定義全部放在檔案頂部。。bug消失。。也沒導致什麼其他的bug。。又給人一種不像是陣列越界產生的bug。。。。。。
總結: 在進行微控制器軟體開發時,要養成良好習慣,盡量吧變數的定義都放在檔案的頂部。。。
stm32f103外部中斷
void extix init void 外部中斷0服務程式 void exti9 5 irqhandler void 這是簡單的外部中斷的配置,pc7作為中斷輸入 上面補充io口的初始化 gpio initstructure.gpio mode gpio mode ipu pc6配置為快充指示 1...
STM32F103啟動檔案
目錄 一 概述 二 彙編指令 2.1 equ 2.2 area 2.3 space 2.4 preserve8 2.5 thumb 2.6 export 2.7 dcd 2.8 proc 2.9 ldr 2.10 blx 2.11 bx 2.12 temport 2.13 b 2.14 if,els...
關於STM32F103精確延時
為了相容freertos,所以將延時函式統一規範,後續使用方便移植。此延時針對無晶振,示例為系統倍頻64mhz,型號 stm32f103c8t6。新建system資料夾,新增兩個檔案,delay.c和delay.h 以下為delay.c內容 其中系統已倍頻為64m include stm32f10x...