【21ic第三届设计大赛】+ 新唐冗执二人组

[复制链接]
1865|4
 楼主 | 2019-6-1 16:45 | 显示全部楼层 |阅读模式
此次采用M058S作为上电默认主机,执行采集4路ADC数值,并通过UART发到从机NUC472,每路ADC数值分别对应各自LED的3级状态,熄灭,闪烁,常亮。
并读取本地的拨动开关状态,若常开触点闭合,则切换至从机,置LED的相关IO为输入高阻态,不再发送数据到NUC472,NUC472接收数据超时后,自动升主,采集4路ADC数值,并置LED相关IO为推挽输出,控制实现LED的3种状态,若M058S的常开触点断开,恢复主机身份,正常发送数据,NUC472接收到数据,再次恢复从机身份。

整个过程的信息,可通过M058S端的12864屏和NUC472端的串口调试助手,实现查看监控。

先实现M058S的简单地读取2个摇杆电位器的4路ADC数值(未做滤波和中点校正),显示到12864上,并且500ms周期性测试根据自定的协议发送数据到UART0。

IMG_20190601_162208.jpg

IMG_20190601_161904.jpg

IMG_20190601_161937.jpg

使用特权

评论回复
 楼主 | 2019-6-1 16:50 | 显示全部楼层
本帖最后由 springvirus 于 2019-6-9 14:31 编辑

发送数据的协议,包括了帧头,源设备,目的设备,指令,4路ADC数值,4路LED的状态,校验,帧尾

使用特权

评论回复
 楼主 | 2019-6-9 14:41 | 显示全部楼层
本帖最后由 springvirus 于 2019-6-10 10:38 编辑

已完成NUC472端的ADC0采样,UART0打印调试信息,UART1与M058S的自定协议通讯,一路IO控制LED板最右端的LED

来几张系统图

IMG_20190609_112630.jpg

从机NUC472和4路 LED
IMG_20190609_112642.jpg

LED板子的背面
IMG_20190609_112712.jpg

NUC472 UART0打印的主机端M058S的相关信息
rbuf->打印的是收到的控制数据缓冲区数据
adc_0 到 adc_3是采样的4路值
led_1 到 led_4是4路LED的状态,0表示熄灭,1表示闪烁,2表示常亮
IMG_20190609_112958.jpg

操作摇杆,值发生变化,LED的相关状态也发生变化了,可以看到adc_1  adc_3发生变化了,led_2  led_4也发生变化了
IMG_20190609_113031.jpg

adc_1  adc_3  向相反方向发生变化了,led_2  led_4也随之变化
IMG_20190609_113046.jpg

使用特权

评论回复
 楼主 | 2019-6-9 14:43 | 显示全部楼层
本帖最后由 springvirus 于 2019-6-9 14:45 编辑

视频在这

https://v.youku.com/v_show/id_XNDIyMTA1OTI0OA==.html?spm=a2hzp.8253869.0.0

使用特权

评论回复
 楼主 | 2019-6-9 14:53 | 显示全部楼层
本帖最后由 springvirus 于 2019-6-9 14:57 编辑

整个系统用到了M058S的UART0(用于与NUC472通讯),ADC0-ADC3 和4路IO控制LED,一路IO使用状态机识别拨动开关,定时器设置为1ms溢出,用于状态机和LED IO定时取反的闪烁效果,多路IO驱动12864屏
NUC472的UART0(用于打印)   UART1(用于与M058S通讯)   ADC0  一路IO控制LED   定时器设置为1ms溢出,用于接收超时的计数器和LED IO定时取反的闪烁效果
上传主流程代码

M058S端的main.c
main_21ic_3rd_DIY.zip (9.19 KB, 下载次数: 0)

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /4 下一条

在线客服 快速回复 返回顶部 返回列表