野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 22195|回复: 4

我是小白一个,哪位大神帮我看下这个程序呀,下载程序后三个灯一直亮着,我的板子...

[复制链接]
发表于 2014-3-16 23:20:46 | 显示全部楼层 |阅读模式
#include "stm32f10x.h"

/*
* 函数名:main
* 描述  : 主函数
* 输入  :无
* 输出  : 无
*/
void Delay(__IO u32 nCount)         //简单的延时函数
{
        for(; nCount != 0; nCount--);
}

void GPIO_init()
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOC, &GPIO_InitStructure);
}

int main(void)
{
        GPIO_init();
        while(1)
        {
                GPIO_SetBits(GPIOC, GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5);
                Delay(0X0FFEF);
                GPIO_ResetBits(GPIOC, GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5);
                Delay(0XFFEF);
        }
}
回复

使用道具 举报

发表于 2014-3-17 00:35:06 | 显示全部楼层
Delay(0X0FFEF); 延时时间太短了  Delay(0X0FFFEF);这样就行了
回复 支持 反对

使用道具 举报

发表于 2014-3-17 08:33:20 | 显示全部楼层
GPIO_SetBits只会转单个IO口,所以你的写法有错.
应该将GPIO_SetBits换成GPIO_WriteBit
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-17 10:23:28 来自手机 | 显示全部楼层
三流电工 发表于 2014-3-17 08:33
GPIO_SetBits只会转单个IO口,所以你的写法有错.
应该将GPIO_SetBits换成GPIO_WriteBit

噢噢,原来如此,谢谢
回复 支持 反对

使用道具 举报

发表于 2014-3-18 19:28:30 | 显示全部楼层
三流电工 发表于 2014-3-17 08:33
GPIO_SetBits只会转单个IO口,所以你的写法有错.
应该将GPIO_SetBits换成GPIO_WriteBit

GPIO_SetBits可以批量设置io口的,谁说不可以。没测试不要乱讲,楼主的问题明明是延时不够吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-20 08:52 , Processed in 0.029804 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表