[STM32F1] STM32F103下载程序后不运行

[复制链接]
921|16
 楼主| jiajs 发表于 2021-3-3 23:22 | 显示全部楼层 |阅读模式
仿真的话在RCC里面出不来,已经选中了run to main 。这是为什么呢?
huangchui 发表于 2021-3-3 23:26 | 显示全部楼层
少写了什么程序
 楼主| jiajs 发表于 2021-3-3 23:29 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| jiajs 发表于 2021-3-3 23:31 | 显示全部楼层
下面是主程序;(测量引脚与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);                              
}
 楼主| jiajs 发表于 2021-3-3 23:33 | 显示全部楼层
编译无错误,无警告
jlyuan 发表于 2021-3-3 23:35 | 显示全部楼层
检查一下晶振电路吧,多半是外部晶振没有起振死机了。
chenjunt 发表于 2021-3-3 23:37 | 显示全部楼层
用LED亮灭作标志,测试看是停在哪了。
stly 发表于 2021-3-3 23:39 | 显示全部楼层
按上面测一下,看看是哪儿问题。
chenjunt 发表于 2021-3-3 23:42 | 显示全部楼层
先跑个官方的例子,看看能否运行
ousj 发表于 2021-3-3 23:43 | 显示全部楼层
如果可以,那说明硬件好的,你软件错了。
houcs 发表于 2021-3-3 23:46 | 显示全部楼层
下载官方的CUBE工具包
 楼主| jiajs 发表于 2021-3-3 23:48 | 显示全部楼层
嗯,已经发现了,程序写错了,尴尬
磨砂 发表于 2021-4-2 13:33 | 显示全部楼层
查看晶振起振了吗
晓伍 发表于 2021-4-2 13:35 | 显示全部楼层
这是什么意思
八层楼 发表于 2021-4-2 13:36 | 显示全部楼层
检查一下晶振电路
观海 发表于 2021-4-2 13:38 | 显示全部楼层
用LED亮灭作标志,测试一下
guanjiaer 发表于 2021-4-2 13:40 | 显示全部楼层
查一下供电情况
您需要登录后才可以回帖 登录 | 注册

本版积分规则

940

主题

11975

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部