野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24965|回复: 1

求大佬解释下关于程序中C语言的问题

[复制链接]
发表于 2019-10-23 15:14:59 | 显示全部楼层 |阅读模式
static void GENERAL_TIM_Mode_Config(void)
{
  // 开启定时器时钟,即内部时钟CK_INT=72M
        GENERAL_TIM_APBxClock_FUN(GENERAL_TIM_CLK,ENABLE);  //使能TIM3的时钟
/*--------------------时基结构体初始化-------------------------*/
        // 配置周期,这里配置为10K
       
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        // 自动重装载寄存器的值,累计TIM_Period+1个频率后产生一个更新或者中断
        TIM_TimeBaseStructure.TIM_Period=9;       
        // 驱动CNT计数器的时钟 = Fck_int/(psc+1)
        TIM_TimeBaseStructure.TIM_Prescaler= 71;       
        // 时钟分频因子 ,配置死区时间时需要用到
        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;               
        // 计数器计数模式,设置为向上计数
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;               
        // 重复计数器的值,没用到不用管
        TIM_TimeBaseStructure.TIM_RepetitionCounter=0;       
        // 初始化定时器
        TIM_TimeBaseInit(GENERAL_TIM, &TIM_TimeBaseStructure);

        /*--------------------输出比较结构体初始化-------------------*/       
        // 占空比配置
        uint16_t CCR1_Val = 5;
       
        TIM_OCInitTypeDef  TIM_OCInitStructure;
        // 配置为PWM模式1
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
        // 输出使能
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
        // 输出通道电平极性配置       
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
       
        // 输出比较通道 1
        TIM_OCInitStructure.TIM_Pulse = CCR1_Val;
        TIM_OC1Init(GENERAL_TIM, &TIM_OCInitStructure);
        TIM_OC1PreloadConfig(GENERAL_TIM, TIM_OCPreload_Enable);
       
        // 使能计数器
        TIM_Cmd(GENERAL_TIM, ENABLE);
}
在通用定时器PWM输出函数 中,为什么TIM_OCInitTypeDef  TIM_OCInitStructure;可以放在函数的中间,还不会报错;但是我复制完之后就出现问题了;好像以前也看见过挺多这样子的写法,但是定义结构体不是得放在函数的开头吗?
求大佬解释下

回复

使用道具 举报

发表于 2019-10-23 18:39:16 | 显示全部楼层
"C89规定,在任何执行语句之前,在块的开头声明所有局部变量。在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。"

https://www.cnblogs.com/cfzhang/ ... c0f68b2e0811cd.html
回复 支持 0 反对 1

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 01:44 , Processed in 0.037438 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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