本次使用的是F103C8T6
摇杆模块是
两路ADC输出,加一个按键开关量,综合起来可以实现:
上下左右+斜45°上下左右+直接按下+方向与按键组合,共计至少17种状态,非常牛掰
ADC配置
打开扫描模式(多通道必须扫描)和连续转换模式(每次采集完自动开启下一次转换)
开关量输入一定要跟ADC采集引脚远一点,亲测挨着可能导致卡死,GPIO设置上拉
DMA配置
用DMA的好处是不经过CPU,给CPU减小压力
代码
ADC_buffer是存储ADC采集数据的数组,开启DMA采集后,每个通道的数据会依次填入缓冲区ADC_buffer,新数据会覆盖旧数据,最后填入通道数2
摇杆状态判断
一个粗略示例:
摇杆和OLED配合粗略示例