Assembly 如何在STM32L152上配置GPIO引脚?
我得到了一个包含stm32l152rb微处理器的STM32L发现板。我试图在没有任何库的情况下在汇编中对该板编程。到目前为止,我成功地编写了链接器脚本和一个基本例程,该例程将.data部分复制到RAM中,并将bss部分归零。但除此之外,我有点迷路了 作为了解配置GPIo工作原理的一个小实验,我想为连接到GPIo端口B引脚7的绿色LED发光板制作一个程序。通过阅读,我得出结论,我需要做以下两件事:Assembly 如何在STM32L152上配置GPIO引脚?,assembly,cortex-m3,stm32,stm32l152,stm32ldiscovery,Assembly,Cortex M3,Stm32,Stm32l152,Stm32ldiscovery,我得到了一个包含stm32l152rb微处理器的STM32L发现板。我试图在没有任何库的情况下在汇编中对该板编程。到目前为止,我成功地编写了链接器脚本和一个基本例程,该例程将.data部分复制到RAM中,并将bss部分归零。但除此之外,我有点迷路了 作为了解配置GPIo工作原理的一个小实验,我想为连接到GPIo端口B引脚7的绿色LED发光板制作一个程序。通过阅读,我得出结论,我需要做以下两件事: 将GPIO端口B针脚7配置为输出针脚 将所述引脚设置为高 但是在这个地方,我没有看到森林,而是树木。
但是在这个地方,我没有看到森林,而是树木。我不确定我应该选择哪种IO模式,所有这些首字母缩略词都让我感到困惑。如果有人能给我提供详细的信息、说明以及可能的组装示例,我将不胜感激。在使用GPIO模块之前,您必须执行以下操作:
- RCC模块,寄存器
,位AHBRSTR
设置为1-rst高GPIOBRST
- RCC模块,寄存器
,位AHBRSTR
设置为0-rst低GPIOBRST
- RCC模块,寄存器
,位AHBENR
设置为1-启用时钟GPIOBEN
GPIOB_MODER
,位字段[15:14]设置为01-
通用输出模式GPIOB\U OTYPER
,第7位设置为0-输出推挽GPIOB_OSPEEDR
,位字段[15:14]设置为00-400 kHz极低速GPIOB_PUPDR
,位字段[15:14]设置为00-无上拉、下拉GPIOB\u BSRR
(设置/重置)寄存器或GPIOB\u ODR(输出)寄存器:
- GPIO模块,寄存器
,位7设置为1-设置GPIOB引脚7 (高)GPIOB\U BSRR
- GPIO模块,寄存器
,位23设置为1-复位 GPIOB针脚7(低)GPIOB\U BSRR