stm32tmp

Sun_Shine_999發表於2018-04-16

1.當配置了jtag做IO引腳,並禁用了sw和jtag下載功能時把程式下載進去會發現下次下載程式會下載不了提示“no target connect”,這時可以按住reset,點download,再鬆開reset即可。
2.STM32上所有的外設的基地址都是0x4000 0000(這其實是ARM公司規定的),這也是APB1的起始地址,APB2以及AHB的基地址都是基於0x4000 0000的,同時其他外設的地址又是基於APB1,APB2,AHB的。關於暫存器的定義以及外設地址的定義都在stm32f103xe.h.


#define PERIPH_BASE           ((uint32_t)0x40000000) /*!< Peripheral base address in the alias region */

/*!< Peripheral memory map */
#define APB1PERIPH_BASE       PERIPH_BASE
#define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)
#define AHBPERIPH_BASE        (PERIPH_BASE + 0x20000)

#define TIM2_BASE             (APB1PERIPH_BASE + 0x0000)
#define TIM3_BASE             (APB1PERIPH_BASE + 0x0400)

3.hex檔案和bin檔案的區別是hex檔案帶有從flash地址0x0800 0000,而bin檔案只有資料無地址,地址需要下載時上位機指定,比如0x0800 0000。從下面的圖對比就看出來了,都是mdk生成的hex和bin.
這裡寫圖片描述

這裡寫圖片描述

4.ISP串列埠讀命令,必須設定偶校驗,然後發0x7f後回0x79,(1)發命令11EE(2)地址比如:0800000008(3)位元組數和其反碼,並不是手冊所說的補碼比如:0ff0