示:Р图2.5 复位电路图Р本次试验所采用的开发板为低电平复位。如图所示,当按键悬空时RST输入为高电平,当按键按下时,RST脚输入为低电平,从而电路复位。Р3.JTAG电路Р JTAG电路原理图如图2.6所示:Р图2.6 JAG电路原理图РJTAG的主要功能是使目标文件烧到核处理器中。Р4.启动模式电路Р 启动模式电路原理图如图2.7所示:Р图2.7 启动模式电路原理图Р通过设置BOOT[1:0]引脚可以选择三种不同启动模式,启动模式如表2-1所示:Р表2-1 启动模式表Р启动模式选择引脚Р启动模式Р说明РBOOT1РBOOT0РXР0Р主闪存存储器Р主闪存存储器被选为启动区域Р0Р1Р系统存储器Р系统存储器被选为启动区域Р1Р1Р内置SRAMР内置SRAM被选为启动区域Р2.1.3 stm32软件设计的基本思路Р在对其他模块设计之前,我们必须了解stm32的编程规则。任何处理器,包括stm32处理器,想要处理器完成某项相应的动作,就必须对处理器的寄存器进行操作。比如,我们在单片机C51中,同样,我们在stmM32的开发中过程中,我们同样可以对寄存器直接操作:РGPIOx->BRR=0x0011。(x可以是A,B,C,D,E…比如GPIOA就是端口A)Р但是,对于stm32这种级别的处理器,几百个寄存器记起来谈何容易。所以,ST(意法半导体)提出了固件库的概念,利用固件库进行编程。固件库的本质就是函数的集合,固件库将那些寄存器的底层操作都封装起来,提供一整套API供开发者使用。比如,上面通过控制BRR寄存器来控制电平的变化,官方库封装了一个函数:РVoid GPIO_ResetBits(GPIO_TypeDef * GPIOx,uint16_t GPIO_Pin)Р{GPIOx->BRR = GPIO_Pin;} (x可以是A,B,C,D,E…比如GPIO_A就是端口A)