需求:从PA1引脚接入一个触摸屏按键,一直输入高电压,触摸按键,电压改变, 电压最高为3.3V
实现:
由图可知PA1支持ADC1通道1 TIM2通道2作为ADC触发源
首先TIM2_CH2触发ADC采样 传输完成 再由DMA传输数据 传输完成后在DMA中断中判断是哪个按键
代码如下
1.TIM2_CH2的配置
2. ADC和DMA的配置
3.ADC采样结果判断函数
4.DMA中断函数 二次判断
5.主函数
首先中断的名字要和中断向量表里面的一样,不然自己随意修改,要修改就得修改中断向量表了,你得先去查DMA通道1的名字是啥,然后直接声明就可以了。然后使能中断,需要调用到的时候自然可以进入到这个中断,不用在主函数里面写,main()函数里面至少需要一个while(1)来保持程序的运行。
一看mian函数就猜测是不是对中断的理解有问题,irqhandler函数不应该放在mian函数中的,这个函数不应该调用,只要申明就行,然后在配置中断的时候配置某中断触发调用这个中断函数,这才是正确的用法吧
两个问题:1、中断函数不用在主函数里调用,中断条件触发了程序会自己调用。
2、你的主函数里面都没有while(1).每个C程序至少都要有一个while(1)的死循环,即使你用中断去处理你想做的事,也要在main函数最后加个while(1).不然程序执行完跳出main函数程序直接跑飞。
直接这样用