|
这个工程是在原子的以太网卡实验的基础上修改的:
工程中用了3个定时器:
Timer2 usmart.c中用了
Timer3 本项目用用于定时判断某个IO脚的输出状况:
Timer4 enc28j60.c 以太网模块用
就是新增的这个Timer3 在初始化函数中,在编译时警告:枚举类型和其它类型混合:
具体代码如下:
//通用定时器3中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!
void TIM3_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能
【 上面这句编译时: warning: #188-D: enumerated type mixed with another type】
TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 计数到5000为500ms
TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值 10Khz的计数频率
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
TIM_ITConfig( TIM3,TIM_IT_Update|TIM_IT_Trigger,ENABLE);//使能定时器2更新触发中断
【 上面这句编译时: warning: #188-D: enumerated type mixed with another type】
TIM_Cmd(TIM3, ENABLE); //使能TIMx外设
【 上面这句编译时: warning: #188-D: enumerated type mixed with another type】
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //先占优先级0级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //从优先级3级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
【 上面这句编译时: warning: #188-D: enumerated type mixed with another type】
NVIC_Init(&NVIC_InitStructure); //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器
}
琢磨了1个小时也没想明白,错在哪儿了。
万能的、伟大的原子大师:帮我看看,错在哪儿了?
|