[mw_shl_code=c,true]#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "stdio.h"
void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}
int main(void)
{
//u8 t=0;
//使能IO时钟,调用函数为RCC_APB2PeriphClockCmd
//初始化I/O参数。调用函数GPIO_Init()
//操作IO。操作方法,调用GPIO_ReadInputDataBit
//声明结构体,结构体以及函数声明要放在代码之前。
GPIO_InitTypeDef gpioinitTypeDef;
//使能GPIO口
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE,ENABLE);
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
//初始化GPIO结构体 包含PIN,mode,以及speed
gpioinitTypeDef.GPIO_Pin=GPIO_Pin_5;
gpioinitTypeDef.GPIO_Mode=GPIO_Mode_Out_PP;
gpioinitTypeDef.GPIO_Speed=GPIO_Speed_50MHz;
//调用初始化函数
GPIO_Init(GPIOB,&gpioinitTypeDef);
GPIO_SetBits(GPIOB,GPIO_Pin_5);
gpioinitTypeDef.GPIO_Pin=GPIO_Pin_5;
GPIO_Init(GPIOE,&gpioinitTypeDef);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
while(1){
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
GPIO_SetBits(GPIOB,GPIO_Pin_5);
Delay(3000000); //此次为第一个延迟
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
Delay(3000000); //此次为第二个延迟
}
}
[/mw_shl_code]
用的是战舰STM32F103ZE开发板 [/mw_shl_code]
[mw_shl_code=c,true]这段代码是没有问题的,但是如果没有第二个延迟,则只有GPIOE所连接的LED1一直亮,没有闪烁,GPIOB连接的LED0不亮,请问这是为什么呀???[/mw_shl_code]
[mw_shl_code=c,true]其次,我用的这个延迟函数,如果变成delay_ms(1000) 现象跟上面一样,是延迟函数有问题么,但是之前用寄存器版的跑马灯时也是用的这个延迟函数,其次光盘上面的跑马灯实验(库函数版)用的也是这个dedelay_ms(1000)延迟函数,但是没有问题,高手能不能帮忙解决下,本人STM32新兵
[/mw_shl_code]
|