打印

主程序下载到板上怎么灯没有反应,我用的是stm32l151rct6芯片

[复制链接]
1163|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
274048251|  楼主 | 2018-7-23 15:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include"stm32l1xx.h"
#include<stdio.h>
#define DeIay(n) while((n)--)
void RCC_HSI_Configuration(void);/*ϵͳʱÖÓÉèÖÃ*/
void GPIO_Configuration(void);/*ÉèÖÃI/O*/
int main(void)
{
        unsigned long n=500;
        RCC_HSI_Configuration();/*ϵͳʱÖÓÉèÖÃ*/
        GPIO_Configuration();/*ÉèÖÃI/O*/
        printf("Program Running!\n");
        while(1)/*ʹÓÃPC13À´¿ØÖƵÆÒÔ1HzµÄƵÂʲ»¶ÏÉÁ˸*/
        {
                /*Êä³ö¸ßµçƽ*/
                GPIO_SetBits(GPIOA,GPIO_Pin_10|GPIO_Pin_11);
                GPIO_SetBits(GPIOB,GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_11);
                GPIO_SetBits(GPIOC,GPIO_Pin_12|GPIO_Pin_13);
                GPIO_SetBits(GPIOD,GPIO_Pin_13);
                DeIay(n);/*ÑÓʱº¯Êý*/
                /*Êä³öµÍµçƽ*/
                GPIO_ResetBits(GPIOA,GPIO_Pin_10|GPIO_Pin_11);
                GPIO_ResetBits(GPIOB,GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_11);
                GPIO_ResetBits(GPIOC,GPIO_Pin_12|GPIO_Pin_13);
                GPIO_ResetBits(GPIOD,GPIO_Pin_2);
                DeIay(n);/*ÑÓʱº¯Êý*/
        }
}
/*¸´Î»ºÍʱÖÓÅäÖú¯Êý*/
void RCC_HSI_Configuration(void)
{
        ErrorStatus HSIStartUpStatus; /*ʹÓÃö¾ÙÀàÐÍErrorStatus¶¨Òåö¾ÙÀàÐͱäÁ¿HSEStartUpStatus,±íʾ¸ßËÙʱÖÓµÄÆô¶¯×´Ì¬*/
        RCC_DeInit(); /*¸´Î»ÏµÍ³Ê±ÖÓÉèÖÃ,½«ÍâÉèRCC¼Ä´æÆ÷ÖØÉèΪĬÈÏÖµ,Õâ¾ä±ØÐëÒª*/
        RCC_HSICmd(ENABLE); /*ʹÄÜHSI*/
        while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET) /*µÈ´ýHSIÆðÕñ²¢Îȶ¨*/
        {}
        /*ÅжÏHSIÆðÕñÊÇ·ñ³É¹¦,ÊÇÔò½øÈëif()ÄÚ²¿*/
        if(HSIStartUpStatus==SUCCESS)
        {
                RCC_HCLKConfig(RCC_SYSCLK_Div1); /*ÉèÖøßËÙ×ÜÏßʱÖÓ,Ñ¡ÔñHCLK(AHB)ʱÖÓԴΪSYSCLK1·ÖƵ,ÅäÖÃAHBƵÂÊÓëϵͳʱÖÓÒ»ÖÂ*/
                RCC_PCLK2Config(RCC_HCLK_Div1); /*Ñ¡ÔñPCLK2ʱÖÓԴΪHCLK(AHB)1·ÖƵ,¶¨Òå¸ßËÙAPBʱÖÓƵÂÊ*/
                RCC_PCLK1Config(RCC_HCLK_Div2); /*Ñ¡ÔñPCLK1ʱÖÓԴΪHCLK(AHB)2·ÖƵ,¶¨ÒåµÍËÙAPBʱÖÓƵÂÊ*/
                /*ÉèÖÃFLASHÑÓʱÖÜÆÚÊýλ1¸ö.µ±ÏµÍ³Ê±ÖÓƵÂÊΪ0-24MHzʱ,²»ÐèÒª²åÈëµÈ´ýÖÜÆÚ,ÔòµÈ´ýÖÜÆÚ¸öÊýΪ0¼´Ê¹FLASH_Latency_0;
                                           µ±ÏµÍ³Ê±ÖÓƵÂÊΪ24-48MHzʱ,ÐèÒª²åÈë1¸öµÈ´ýÖÜÆÚ,ÔòµÈ´ýÖÜÆÚ¸öÊýΪ1¼´Ê¹FLASH_Latency_1;
                                           µ±ÏµÍ³Ê±ÖÓƵÂÊΪ48-72MHzʱ,ÐèÒª²åÈë2¸öµÈ´ýÖÜÆÚ,ÔòµÈ´ýÖÜÆÚ¸öÊýΪ2¼´Ê¹FLASH_Latency_2*/
                FLASH_SetLatency(FLASH_Latency_1);
                FLASH_PrefetchBufferCmd(ENABLE); /*ʹÄÜFLASHԤȡָÁ³åÇø*/
                /*RCC_PLLSource¶¨ÒåPLLʱÖÓÔ´,Ñ¡ÔñPLLʱÖÓԴΪHSIʱÖÓƵÂÊ(16MHz)µÄ1·ÖƵ,RCC_PLLMul¶¨ÒåPLL±¶ÆµÊý,Ϊ4,ÔòPLL=16MHz¡Á4=64MHz*/
                RCC_PLLConfig(RCC_PLLSource_HSI,RCC_PLLMul_4);
                RCC_PLLCmd(ENABLE); /*ʹÄÜPLL*/
                /*µÈ´ýPLLÊä³öÎȶ¨
                  RCC_FLAG_HSIRDY:HSI¾§Õñ×¼±¸¾ÍÐ÷;RCC_FLAG_HSERDY:HSE¾§Õñ¾ÍÐ÷
                  RCC_FLAG_PLLRDY:PLL¾ÍÐ÷;        RCC_FLAG_LSERDY:LSE¾§Õñ¾ÍÐ÷
                  RCC_FLAG_LSIRDY:LSI¾§Õñ¾ÍÐ÷*/
                while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)
                {
                }
                /*RCC_GetSYSCLKSource¶¨Òå¿ÉÑ¡µÄϵͳʱÖÓ,Ñ¡ÔñSYSCLK(ϵͳ)ʱÖÓԴΪPLL
                  RCC_SYSCLKSource_HSI:Ñ¡ÔñHSI×÷ΪϵͳʱÖÓ;
                  RCC_SYSCLKSource_HSE:Ñ¡ÔñHSE×÷ΪϵͳʱÖÓ;
                  RCC_SYSCLKSource_PLLCLK:Ñ¡ÔñPLLCLK×÷ΪϵͳʱÖÓ*/
                RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
                /*µÈ´ýPLL×÷ΪSYSCLK(ϵͳ)ʱÖÓ±ê־λÖÃλ
                  0x00:HSI×÷ΪϵͳʱÖÓ;
                  0x04:HSE×÷ΪϵͳʱÖÓ;
                  0x08:PLL×÷ΪϵͳʱÖÓ*/
                while(RCC_GetSYSCLKSource()!=0x08)
                {
                }
        }
         /*RCC_APB2Periph¶¨ÒåAPB2ÍâÉèʱÖÓ,´ò¿ªAPB2×ÜÏßÉϵÄGPIOA,GPIOB,GPIOC,GPIODʱÖÓ*/
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB|RCC_AHBPeriph_GPIOC|RCC_AHBPeriph_GPIOD,ENABLE);
}
/*ͨÓÃGPIO¶Ë¿ÚÉèÖú¯Êý*/
void GPIO_Configuration(void)
{
        GPIO_InitTypeDef GPIO_InitStructure; /*GPIO_InitTypeDef¶¨ÒåÓÚstm32f10x_gpio.hÎļþ*/
        /*ÉèÖÃLED IO½Å*/
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10|GPIO_Pin_11; /*Ñ¡ÔñÒý½Å*/
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_40MHz; /*GPIO_Speed¶¨ÒåGPIO×î¸ßÊä³öƵÂÊ*/
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; /*GPIO_ModeÉèÖÃÑ¡ÖÐÒý½ÅµÄ¹¤×÷ģʽΪͨÓÃÊä³öģʽ*/
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_11|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9; /*Ñ¡ÔñÒý½Å*/
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_40MHz; /*GPIO_Speed¶¨ÒåGPIO×î¸ßÊä³öƵÂÊ*/
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; /*GPIO_ModeÉèÖÃÑ¡ÖÐÒý½ÅµÄ¹¤×÷ģʽ*/
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
        GPIO_Init(GPIOB,&GPIO_InitStructure);
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13; /*Ñ¡ÔñÒý½Å*/
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_40MHz; /*GPIO_Speed¶¨ÒåGPIO×î¸ßÊä³öƵÂÊ*/
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; /*GPIO_ModeÉèÖÃÑ¡ÖÐÒý½ÅµÄ¹¤×÷ģʽ*/
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
        GPIO_Init(GPIOC,&GPIO_InitStructure);
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2; /*Ñ¡ÔñÒý½Å*/
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_40MHz; /*GPIO_Speed¶¨ÒåGPIO×î¸ßÊä³öƵÂÊ*/
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; /*GPIO_ModeÉèÖÃÑ¡ÖÐÒý½ÅµÄ¹¤×÷ģʽ*/
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
        GPIO_Init(GPIOD,&GPIO_InitStructure);
}
评论
274048251 2018-7-23 16:02 回复TA
希望大家看一下 

相关帖子

沙发
cainiao518| | 2018-7-23 16:16 | 只看该作者
芯片电源和晶振,复位电路都正常不?

使用特权

评论回复
板凳
cainiao518| | 2018-7-23 16:17 | 只看该作者
printf("Program Running!\n");

把这一行注释掉试试

使用特权

评论回复
地板
274048251|  楼主 | 2018-7-23 17:55 | 只看该作者
cainiao518 发表于 2018-7-23 16:16
芯片电源和晶振,复位电路都正常不?

晶振我是用内部晶振HSI,电源输出是3.3V正常。

使用特权

评论回复
5
cainiao518| | 2018-7-23 17:58 | 只看该作者
274048251 发表于 2018-7-23 17:55
晶振我是用内部晶振HSI,电源输出是3.3V正常。


printf("Program Running!\n");

把这一行注释掉试试

使用特权

评论回复
6
274048251|  楼主 | 2018-7-23 18:03 | 只看该作者
cainiao518 发表于 2018-7-23 16:17
printf("Program Running!\n");

把这一行注释掉试试

我去掉了,灯能亮了,不过没有闪,我是用了延时程序,为什么不闪呢?

使用特权

评论回复
7
cainiao518| | 2018-7-24 08:50 | 只看该作者
274048251 发表于 2018-7-23 18:03
我去掉了,灯能亮了,不过没有闪,我是用了延时程序,为什么不闪呢?

延时的时间是多少?

使用特权

评论回复
8
274048251|  楼主 | 2018-7-24 12:11 | 只看该作者
1秒

使用特权

评论回复
9
274048251|  楼主 | 2018-7-24 12:11 | 只看该作者
cainiao518 发表于 2018-7-24 08:50
延时的时间是多少?

是1秒

使用特权

评论回复
10
121816026| | 2018-7-24 13:57 | 只看该作者
不可以仿真么?

使用特权

评论回复
11
cainiao518| | 2018-7-24 14:38 | 只看该作者

没找到延时函数在哪

使用特权

评论回复
12
274048251|  楼主 | 2018-7-24 20:04 | 只看该作者

我没有仿真.

使用特权

评论回复
13
274048251|  楼主 | 2018-7-24 20:06 | 只看该作者
cainiao518 发表于 2018-7-24 14:38
没找到延时函数在哪

DeIay(n) while((n)--)我用的是这个呀

使用特权

评论回复
14
cainiao518| | 2018-7-25 08:23 | 只看该作者
274048251 发表于 2018-7-24 20:06
DeIay(n) while((n)--)我用的是这个呀

延时时间太短

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

22

帖子

0

粉丝