新人,根据视频教学,玩了一下跑马灯,可是,我把程序下到mini板里后,两个灯的时间间隔不是程序里延时的时间,求教

2019-10-16 07:43发布

#include "stm32f10x.h"
#include  "delay.h"
/* void Delay(u32 count)
 {
  u32 i=0;
  for(;i<count;i++);  }*/
 int main(void)
 { 
  GPIO_InitTypeDef  GPIO_InitStructure;
  delay_init();
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);  //使能PA,PD端口时钟
 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;     //LED0-->A.8 端口配置
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //IO口速度为50MHz
  GPIO_Init(GPIOA, &GPIO_InitStructure);      //根据设定参数初始化GPIOA.8
  GPIO_SetBits(GPIOA,GPIO_Pin_8);       //PA.8 输出高   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;        //LED1-->D.2 端口配置, 推挽输出
  GPIO_Init(GPIOD, &GPIO_InitStructure);        //推挽输出 ,IO口速度为50MHz
  GPIO_SetBits(GPIOD,GPIO_Pin_2);        //PD.2 输出高   
  while(1)
 {
     GPIO_ResetBits(GPIOA,GPIO_Pin_8);
     GPIO_SetBits(GPIOD,GPIO_Pin_2);
  delay_ms(500);
  //Delay(3000000);
  GPIO_SetBits(GPIOA,GPIO_Pin_8);
  GPIO_ResetBits(GPIOD,GPIO_Pin_2);
  delay_ms(500);
  //Delay(3000000);
 }
 }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
enan
1楼-- · 2019-10-16 13:00
static void SetSysClockTo72(void)这个函数最后有个else在里面随便加行代码,加个断点,设置仿真不从main开始,然后全速运行,如果掉入那个断点处,表示你的外部晶振挂了,

如果不是上面的问题,那就是你程序有问题
正点原子
2楼-- · 2019-10-16 13:09
 精彩回答 2  元偷偷看……
lihilong
3楼-- · 2019-10-16 14:24
正点原子 发表于 2015-6-29 22:22
你的结果是多少?

昨天按照视频在战舰里做了一下跑马灯,自己想修改延时时间跟闪烁效果,结果不行,这是什么问题啊?
正点原子
4楼-- · 2019-10-16 17:02
lihilong 发表于 2016-11-23 07:16
昨天按照视频在战舰里做了一下跑马灯,自己想修改延时时间跟闪烁效果,结果不行,这是什么问题啊?

你这怎么修改的
lihilong
5楼-- · 2019-10-16 20:16
正点原子 发表于 2016-11-27 14:21
你这怎么修改的

是不是不能超过值1764?我自己按照函数里边公式算了一下
lihilong
6楼-- · 2019-10-17 01:31
lihilong 发表于 2016-11-27 22:50
是不是不能超过值1764?我自己按照函数里边公式算了一下

RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
                                        RCC_CFGR_PLLMULL));
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);
这个语句能详解一下么?

一周热门 更多>