我有一个STM32L发现板,其中包含一个stm32l152rb微处理器。我试着在没有任何库的情况下用汇编语言对电路板进行编程。到目前为止,我成功地编写了链接器脚本和一个基本例程,该例程将.data部分复制到RAM中,并将bss部分清零。但除此之外,我有点迷路了。
作为一个了解GPIO配置工作原理的小实验,我想为电路板编写一个程序,使连接到GPIO端口B引脚7的绿色LED亮起。阅读datasheet,我得出结论,我需要做以下两件事:
1.将GPIO端口B的引脚7配置为输出引脚
1.将所述引脚设置为高电平
但在这个地方,我比喻的是只见树木不见森林。我不知道我应该选择哪种IO模式,所有这些缩写词都让我感到困惑。我真的很感激有人给我详细的信息,说明和可能的例子组装就如何做到这一点。
1条答案
按热度按时间wgeznvg71#
在使用GPIO模块之前,必须执行以下操作:
AHBRSTR
,位GPIOBRST
设为第一高电平AHBRSTR
,位GPIOBRST
设置为0 -第一低电平AHBENR
,位GPIOBEN
设为1 -使能时钟之后,您可以开始使用GPIO寄存器
GPIOB_MODER
,位字段[15:14]设置为01 -通用输出模式GPIOB_OTYPER
,位7设为0 -输出推挽GPIOB_OSPEEDR
,位字段[15:14]设置为00 - 400 kHz极低速GPIOB_PUPDR
,位字段[15:14]设置为00 -无上拉、下拉现在,您可以使用
GPIOB_BSRR
(置位/复位)寄存器或GPIOB_ODR(输出)寄存器:GPIOB_BSRR
,位7设为1 -设置GPIOB引脚7(高电平)GPIOB_BSRR
,位23设为1 -重置GPIOB引脚7(低电平)