当前位置: 首页 > news >正文

利用m0改造循迹模块处理笔记00

用g3507芯片,处理循迹,用adc读取,用gpio输出,目标是16个通道ADC。
一、技术目标:
1、检测16个输入模拟量通道,用内置的adc进行转换,这里得到17个通道。
2、人机交互:
4个LED状态指示那个通道;
一个LED指示是标定模式,还是常规模式,标定模式LED点亮,常规模式LED熄灭。
6个按键调节标定值;
2个引脚,软件i2c显示OLED屏幕;
2个软件,软件i2c,和at24c02进行交互,将标定结果保存;

3、输出:
17个IO输出;
一个串口输出;
一个I2C输出;
一个spi输出;

1个定时器作为程序节拍。

二、步骤
上电。
如果需要调节,上电5秒内长按K1,进入调节模式,如果不需要调节,那么5秒过后自动调用at24c02的数据作为标定比较值。5秒之内,OLED显示倒计时,4个闪烁灯短闪烁,提示等待选择;
OLED显示16个通道的adc值。
12864
128/8=16
1234567890123456
xxx yyy xxx yyy,4个通道,每行显示4个通道,4行显示16个通道。
再加一行,显示模式,是标定模式,还是使用模式,按键adc通道。
标定模式-通道-当前adc-标定ADC
A(B)-X(0-F)-YYY-ZZZ
如果是标定模式。没有OLED的情况下,用5个LED,显示那个通道。

按键功能
K1:长按一次,进入标定模式,标定模式下,长按第二次,退出标定模式;
K2: 在标定模式下,选择通道;按下n次,选择通道0-15;用4个LED指示通道。
硬件设计上,0代表点亮,1代表熄灭;
0000---------ADC0
0001---------ADC1
0010---------ADC2
0011---------ADC3
0100---------ADC4
0101--------ADC5

K3: 在标定模式下,按下一次,对选定通道,数据+1,数据范围看adc的位数,如果是8位adc,那么数据范围0-255。长按,数据连续-
设置adc精度是8位,数据是0-255范围内;
K4:在标定模式下,按下一次,对选定通道,数据-1,或者减1,数据范围0-255;
长按,数据连续-,
K5:长按,保存数据到at24c02;需要长按才能保存,防止误操作;同时退出标定模式。
K6:长按,不保存数据;同时退出标定模式。

配置

  • GPIOA:
    • Open-Drain Output: PA0
    • Open-Drain Output: PA1
    • High-Drive Output: PA28
    • Standard Output: PA29
    • Standard Output: PA30
    • High-Drive Output: PA31
    • Standard Output: PA3
    • Standard Output: PA4
    • Standard Output: PA6
    • Standard Output: PA7
    • Standard Output: PA8
    • High-Speed Output: PA9
  • GPIOB:
    • Standard Input with internal pull-up: PB21
    • Standard Output: PB13
    • Standard Output: PB14
    • Standard Output: PB15---------------------------------16个LED
    • Standard Output: PB16-------------------------LED模式,点亮标定,熄灭常规模式
    • Standard Output: PB22
    • Standard Output: PB23
    • Standard Output: PB26
    • Standard Output: PB27-------------------LED通道指示
    • Standard Output: PB0
    • Standard Output: PB1
    • Standard Output: PB4
    • Standard Output: PB5
    • Standard Output: PB6
    • Standard Output: PB7-------------------------按键6个
    • Standard Output: PB8
    • Standard Output: PB9------------------------OLED
    • Standard Output: PB10
    • Standard Output: PB11----------------------AT24C02
    • Standard Output: PB12----------------------预留
  • SYSCTL
  • TIMA0
  • I2C1:
    • I2C Serial Data line (SDA): PB3
    • I2C Serial Clock line (SCL): PB2
  • UART0:
    • RX Pin: PA11
    • TX Pin: PA10
  • SPI0:
    • SPI SCLK (Clock): PA12
    • SPI PICO (Peripheral In, Controller Out): PA5
    • SPI POCI (Peripheral Out, Controller In): PA13
    • SPI CS0 (Chip Select 0): PA2
  • ADC0:
    • ADC12 Channel 0 Pin: PA27
    • ADC12 Channel 1 Pin: PA26
    • ADC12 Channel 2 Pin: PA25
    • ADC12 Channel 3 Pin: PA24
    • ADC12 Channel 4 Pin: PB25
    • ADC12 Channel 5 Pin: PB24
    • ADC12 Channel 6 Pin: PB20
    • ADC12 Channel 7 Pin: PA22
    • ADC12 Channel 8 Pin: PA21
    • ADC12 Channel 12 Pin: PA14
  • ADC1:
    • ADC12 Channel 0 Pin: PA15
    • ADC12 Channel 1 Pin: PA16
    • ADC12 Channel 2 Pin: PA17
    • ADC12 Channel 3 Pin: PA18----------------BSL,BOOT
    • ADC12 Channel 4 Pin: PB17
    • ADC12 Channel 5 Pin: PB18
    • ADC12 Channel 6 Pin: PB19
  • VREF:
    • VREF Positive (VREF+): PA23
  • EVENT
  • MATHACL
  • BOARD:
    • Debug Clock: PA20-------------------SWCLK
    • Debug Data In Out: PA19------------SWDIO

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/315890.html

相关文章:

  • Windows 安装 RabbitMQ 消息队列超详细步骤(附加详细操作截屏)
  • kettle插件-kettle http post plus插件,轻松解决https post接口无法调用文件流下载问题
  • python的高校考研交流系统
  • FastAPI快速入门P2:与SpringBoot比较
  • ESP-idf框架下的HTTP服务器\HTML 485温湿度采集并长传
  • windows如何查限制每个用户占用的显存大小
  • Node.js高并发下的内存泄漏排查与解决实录
  • 微信小程序的合规检测
  • (LeetCode 每日一题) 3477. 水果成篮 II (暴力)
  • Pytorch-06 如何开启模型训练(模型训练工作流梳理)
  • 几乎不会存在Store Buffer中的指令不提交缓存的情况~
  • Rust进阶-part3-生命周期
  • AI的第一次亲密接触——你的手机相册如何认出你的猫?
  • JavaWeb(苍穹外卖)--学习笔记17(Websocket)
  • 【qt5_study】2.使用Qt Designer构造UI界面(信号与槽)
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第二十四讲)
  • React18 严格模式下的双重渲染之谜
  • 【01】OpenCV C++实战篇——基于多项式插值的亚像素边缘定位算法
  • NLP自然语言处理 02 RNN及其变体
  • golang 1.24引入alias types的原因
  • Mac上pnpm的安装与使用
  • 《计算机“十万个为什么”》之 面向对象 vs 面向过程:编程世界的积木与流水线
  • VSCode中使用Qt
  • MySQL 如何优化慢查询
  • Apifox使用mock模仿后端返回数据
  • Java异常讲解
  • PowerShell 入门2: 使用帮助系统
  • 开源密码恢复实用程序 Hashcat 7.0.0 发布
  • 灰色优选模型及算法MATLAB代码
  • 2025年6月中科院2区-红杉优化算法Sequoia Optimization Algorithm-附Matlab免费代码