小白,求助!!!在学习跑马灯实验的时候,就是刚开始入门学习点灯,让小灯闪烁,主要是要是不准(意思是我用的是原子的延时函数,软件上用的是500ms可是在硬件上就变得有2、3s左右)!刚开始学习的是直接用库函数调用,演示比较正常,但是我按照手册上的直接操作寄存器的时候就出现这样的问题,演示误差很大,就这接点一个灯,让他闪烁本来我以为是我配置错了,但是我把原子的源代码放过来以后也是出现这样的问题(延时不精确),用库函数是可以的!大家给分析一下,代码如下:
LED.C :void LED_Init(void)
{
RCC->AHB1ENR |= ( 1<< 5);
GPIOF->MODER &= ~(3 << 18);
GPIOF->MODER |= (1 << 18);
GPIOF->OTYPER &= ~(1 <<9);
GPIOF->OTYPER |= (0 << 9);
GPIOF->OSPEEDR &= ~(3 << 18);
GPIOF->OSPEEDR |= (1 << 18);
GPIOF->
UPDR &= ~(3 << 18);
GPIOF->
UPDR |= (1 << 18);
GPIOF->ODR |= (1 << 9);
}
main :
int main(void)
{
delay_init(168);
LED_Init();
while(1)
{
GPIOF->ODR &= ~(1 << 9);
delay_ms(500);
GPIOF->ODR |= (1 << 9);
delay_ms(500);
}
}
一周热门 更多>