前段時間在寫stm32程式時,發現定義的區域性變數會發生莫名其妙的陣列越界,改變其定義順序問題竟然得到解決,懷疑是堆疊空間沒有分配夠,於是決定追根溯源,查到一些資料,將startup_stm32f10x_hd.s中的棧空間改大即可:
stack_size equ 0x00000400;棧空間大小;
area stack, noinit, readwrite, align=3
stack_mem space stack_size
__initial_sp
; heap configuration
; heap size (in bytes) <0x0-0xffffffff:8>
; heap_size equ 0x00000200;堆空間大小;
area heap, noinit, readwrite, align=3
__heap_base
heap_mem space heap_size
__heap_limit
另:如果仍然不行,可修改keill mdk中的**優化等級,優化為設定為最低: 關於STM32中定義陣列的問題
功能描述 今天做資料採集,tim2定時中斷20ms採集一次資料,並存入乙個陣列中。採集完4000個資料後,用串列埠將這4000個資料依次傳送給上位機。問題描述 debug中對陣列指標add watch,發現指標由0增加至1後就不再增加,懷疑tim2配置有問題,只進了一次中斷。於是查了半天關於定時中斷...
STM32除錯問題
1 stm32用iar除錯出現error pe020 identifier file is undefined 解決方法 需要在 iar的options general options library configuration裡設定一下函式庫,不然printf函式不對,將library confi...
預熱2 什麼是STM32?認識STM32
1 什麼是stm32 stm32是由arm公司設計,意法半導體 st 公司生產的基於 arm cortex m 核心的32 位的mcu 系列。2 stm32能做什麼?stm32 屬於乙個微控制器,適用於控制類,自帶了各種常用通訊介面,比如 usart i2c spi 等,可接非常多的感測器,可以控制...