stm32tmp
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