初级会员

- 积分
- 60
- 金钱
- 60
- 注册时间
- 2014-3-18
- 在线时间
- 0 小时
|
5金钱
void Touch_Init(void)
{
//注意,时钟使能之后,对GPIO的操作才有效
//所以上拉之前,必须使能时钟.才能实现真正的上拉输出
RCC->APB2ENR|=1<<4; //PC时钟使能
RCC->APB2ENR|=1<<0; //开启辅助时钟
GPIOC->CRL&=0XFFFF0000;//PC0~3
GPIOC->CRL|=0X00003883;
GPIOC->CRH&=0XFF0FFFFF;//PC13
GPIOC->CRH|=0X00300000;//PC13推挽输出
GPIOC->ODR|=0X200f; //PC0~3 13 全部上拉
Read_ADS(& en_Point.X,& en_Point.Y);//第一次读取初始化
MY_NVIC_Init(2,0,EXTI1_IRQChannel,2);
RCC->APB2ENR|=0x01; //使能io复用时钟
AFIO->EXTICR[0]|=0X0020; //EXTI13映射到PC1
EXTI->IMR|=1<<1; //开启line1上的中断
EXTI->EMR|=1<<1; //不屏蔽line1上的事件
EXTI->FTSR|=1<<1; //line1上事件下降沿触发
#ifdef ADJ_SAVE_ENABLE
AT24CXX_Init();//初始化24CXX
if(Get_Adjdata())return;//已经校准
else //未校准?
{
LCD_Clear(WHITE);//清屏
Touch_Adjust(); //屏幕校准
Save_Adjdata();
}
Get_Adjdata();
#else
LCD_Clear(WHITE);//清屏
Touch_Adjust(); //屏幕校准,带自动保存
#endif
// printf("Pen_Point.xfac:%f\n",Pen_Point.xfac);
// printf("Pen_Point.yfac:%f\n",Pen_Point.yfac);
// printf("Pen_Point.xoff:%d\n",Pen_Point.xoff);
// printf("Pen_Point.yoff:%d\n",Pen_Point.yoff);
}
原子哥你好,我之前看过中断部分,然后今天碰到这里又不懂了,红色标注的部分,我想问它选择的优先级以及分组有什么根据吗?还是随便设置就可以?还有 为什么用EXTI1_IRQChannel ?不用其他的呢?
|
最佳答案
查看完整内容[请看2#楼]
这代码比较久远了吧。。。
我们新例程都不是用中断方式了。
然后,分组是根据你自己需要设置的,如果触摸屏你希望优先级高,那就设置高一点。
至于EXTI1_IRQChannel,那是因为触摸屏的中断引脚接PC1上面了。
|