我很难在atollic True Studio IDE上使用stm32f030r8手臂编程。
我从idr寄存器读取正确的数据时遇到了一些问题。
我制作了GPIOB(0,1,2,3)的下拉PUPR寄存器。
我用MODER寄存器输出的GPIOB的其他引脚。
每当我读取F值但没有任何输入时,都在循环下读取idr数据时。
请帮助我解决此问题[
#include "main.h"
int main(void)
{
volatile static uint16_t PortDataInput=0x00;
RCC->CR|=(uint32_t)0xF1; //set hsi clock source and with max speed
GPIOB->PUPDR|=0xAA; //set firt 4 bit of gpiob as pull down
GPIOB_RCC->AHBENR|=(1<<18); //enable gpiob clock source
GPIOB->MODER|=0x55555500; //set firt 4 bit of gpiob as input
GPIOB->OTYPER|=0x00000000; //set output pins of gpiob as push pull
while (1)
{
PortDataInput=GPIOB->IDR;
PortDataInput&=0xF;
}
答案 0 :(得分:2)
您尝试在启用外设时钟之前设置gpio寄存器。因此,您无法写入其任何寄存器。
答案 1 :(得分:0)
我找到了解决方案。 解决的办法是。启用外围时钟后,我必须设置所有gpio寄存器。
ExtensionContext.Store