打印
[STM32F1]

STM32F103下载程序后不运行

[复制链接]
3543|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xinting|  楼主 | 2019-4-30 15:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主要问题如题目。KEIL5 V2.26搭配最新版本的pack,(因为之前用V5.18也不运行,就换了新版本)。仿真的话在RCC里面出不来,已经选中了run to main 。这是为什么呢?怀疑是少写了什么程序问题,还是??
下面是主程序;(测量引脚与PWM引脚均不对)
int main(void)
{
        RCC_Configuration();
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        LED_Init();
        TIM2_PWM_Init(9999,143);    //50Hz
        TIM_SetCompare1(TIM2,5000); //50Hz
        TIM_SetCompare2(TIM2,4000); //50Hz
        TIM_SetCompare3(TIM2,3000); //50Hz
        TIM_SetCompare4(TIM2,2000); //50Hz
        while(1)
        {
                GPIO_SetBits(LED_PORT,LED1_BIT);
                GPIO_ResetBits(LED_PORT,LED2_BIT);
        delay_ms(100);
        }
}
void LED_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStrue;
   
    RCC_APB2PeriphClockCmd(LED_CLK,ENABLE);   
   
    GPIO_InitStrue.GPIO_Pin=LED1_BIT;         
    GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP;  
    GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;
    GPIO_Init(LED_PORT,&GPIO_InitStrue);      
}
void TIM2_PWM_Init(u16 arr,u16 psc)
{
    GPIO_InitTypeDef     GPIO_InitStrue;
    TIM_OCInitTypeDef     TIM_OCInitStrue;
    TIM_TimeBaseInitTypeDef     TIM_TimeBaseInitStrue;
   
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);   
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);  
   
    GPIO_InitStrue.GPIO_Pin=GPIO_Pin_0 | GPIO_Pin_1
        | GPIO_Pin_2 |GPIO_Pin_3;  
    GPIO_InitStrue.GPIO_Mode=GPIO_Mode_Out_PP;         
    GPIO_InitStrue.GPIO_Speed=GPIO_Speed_50MHz;         
    GPIO_Init(GPIOA,&GPIO_InitStrue);               

       
    TIM_TimeBaseInitStrue.TIM_Period=arr;                  
    TIM_TimeBaseInitStrue.TIM_Prescaler=psc;            
    TIM_TimeBaseInitStrue.TIM_CounterMode=TIM_CounterMode_Up;
    TIM_TimeBaseInitStrue.TIM_ClockDivision=TIM_CKD_DIV1;   
    TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStrue);        
    TIM_OCInitStrue.TIM_OCMode=TIM_OCMode_PWM1;           
    TIM_OCInitStrue.TIM_OCPolarity=TIM_OCPolarity_High;   
    TIM_OCInitStrue.TIM_OutputState=TIM_OutputState_Enable;
        TIM_OCInitStrue.TIM_Pulse = arr/10;                          
       
    TIM_OC1Init(TIM2,&TIM_OCInitStrue);                    
    TIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Enable);     
    TIM_OC2Init(TIM2,&TIM_OCInitStrue);                  
    TIM_OC2PreloadConfig(TIM2,TIM_OCPreload_Enable);        
        TIM_OC3Init(TIM2,&TIM_OCInitStrue);                    
    TIM_OC3PreloadConfig(TIM2,TIM_OCPreload_Enable);      
        TIM_OC4Init(TIM2,&TIM_OCInitStrue);                  
    TIM_OC4PreloadConfig(TIM2,TIM_OCPreload_Enable);      
       
        TIM_ARRPreloadConfig(TIM2, ENABLE);
    TIM_Cmd(TIM2,ENABLE);                              
}

使用特权

评论回复
沙发
xinting|  楼主 | 2019-4-30 15:47 | 只看该作者
编译无错误,无警告

使用特权

评论回复
板凳
sky.sun.zz| | 2019-4-30 17:48 | 只看该作者
检查一下晶振电路吧,多半是外部晶振没有起振死机了。

使用特权

评论回复
地板
hu9jj| | 2019-4-30 19:24 | 只看该作者
用LED亮灭作标志,测试看是停在哪了。

使用特权

评论回复
5
zhuomuniao110| | 2019-4-30 21:40 | 只看该作者
按上面测一下,看看是哪儿问题。

使用特权

评论回复
6
xinpian101| | 2019-4-30 21:51 | 只看该作者
先跑个官方的例子,看看能否运行,如果可以,那说明硬件好的,你软件错了。

使用特权

评论回复
7
zhangmangui| | 2019-4-30 23:48 | 只看该作者
下载官方的CUBE工具包

使用特权

评论回复
8
xinting|  楼主 | 2019-5-6 08:27 | 只看该作者
嗯,已经发现了,程序写错了,尴尬

使用特权

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

本版积分规则

11

主题

44

帖子

0

粉丝