新手刚入手32,根据视频寄存器编写跑马灯,延时函数偏差很大?而且延时初始化时为什么要赋值?

2019-08-17 00:20发布

[mw_shl_code=c,true]#include "led.h"
#include "stm32f10x.h"               
#include "delay.h"       

int main(){
        delay_init(50);
        led_Init();       
        while(1){
                GPIOB->ODR|=1<<5;
                GPIOE->ODR&=0<<5;
                delay_ms(500);
       
           GPIOB->ODR&=~(1<<5);
                 GPIOE->ODR|=~(0<<5);
                 delay_ms(500);   
                }


}
[/mw_shl_code]

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
liuliuliu
2019-08-17 02:45
麻烦先好好看一下手册!你这么问,我感觉你可能C语言也没什么基础,定义的函数是这样的:void delay_init(u8 SYSCLK),你要调用delay_init函数,必须填入参数才可以,不然肯定报错,也不是随便填的,里面的值是MCU的主频,STM32F103ZET6主频是72M,如果MCU是STM32F103ZET6就填72,你填50肯定是错的,MCU的主频都是8的倍数!
先复习一下C语言的基础,再对照手册和例程去学

一周热门 更多>