[求助] 新手求助

supeng1229   2012-6-14 09:58 楼主

公司买的STM32F4的EVAL板,刚开始学习,所以很菜。写了个让LED灯闪烁的工程,结果下载到板子上不亮,不知什么原因,困扰我好几天了,只能来论坛求助于各位大侠了,希望能得到解决啊,谢谢了。





#include "stm32f4xx.h"

#include "main.h"
#include "stm32f4xx_gpio.h"

GPIO_InitTypeDef GPIO_InitStructure;
__IO u16 ntime;



int main(void)
{
void LED_Init();

while (1)
{
GPIOG->BSRRL = GPIO_Pin_6 | GPIO_Pin_8;

delay_ms(1000);

GPIOG->BSRRH = GPIO_Pin_6 | GPIO_Pin_8;
}

}


void LED_Init(void)
{

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOG, &GPIO_InitStructure);
}



void delay_ms(u16 nms)
{
ntime=nms;
SysTick_Config(168000);//1ms产生一次中断
while(ntime);
SysTick->CTRL=0x00;
}

void delay_us(u32 nus)
{
ntime=nus;
SysTick_Config(168);//1us产生一次中断
while(ntime);
SysTick->CTRL=0x00;
}

void Delay(u32 count)
{
while(count--);
}

回复评论 (7)

有时候不一定是程序的问题,也可能是硬件问题哦,比如跳线等的连接。

先做个简单的,让LED点亮,看看端口输出结果是什么?
点赞  2012-6-14 10:15
端口没问题啊  这个我可以保证的 
点赞  2012-6-14 10:19
你先写个程序,只点亮LED,看看是否能够实现
点赞  2012-6-14 11:15
为什么把void LED_Init();换成
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOG, &GPIO_InitStructure);
就能点亮呢 很奇怪 但还是不闪烁 请指教啊
点赞  2012-6-14 11:23
这两个内容不是一样吗 不能互相替代吗
点赞  2012-6-14 11:25
明白了
GPIOG->BSRRL = GPIO_Pin_6 | GPIO_Pin_8;

delay_ms(1000);

GPIOG->BSRRH = GPIO_Pin_6 | GPIO_Pin_8;

后面应该再加一个延时 delay_ms(1000);
不然怎么会闪烁呢 呵呵
点赞  2012-6-14 14:25
呵呵,问题解决了就好
点赞  2012-6-14 15:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复