打印
[RISC-V MCU 创新应用比赛]

沁恒 CH32V103 驱动4线电阻触摸屏

[复制链接]
8343|43
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#申请原创# @21小跑堂
  沁恒官方设计的这块 CH32V103 开发板 yyds ,内置仿真器了,USB转串口也有了,还兼容 Arduino 接口
  不用接线,直接把 Arduino 的扩展板搬过来用
  上回说到 FATFS 文件系统读取中文长文件名,也做好了字库,用液晶屏进行显示







  再夸夸,非常方便,直接插上 Arduino 显示扩展板,扩展板带有 SPI 接口的 TF 卡插槽,TF 卡 里放上需要的文件,几乎想要的都齐了

  等等,那显示有了,输入呢?

  别急,不用接线,扩展板上也贴好了电阻触摸屏,由于扩展板引脚较少,电阻屏引脚复用到液晶屏

  四线电阻触摸屏,虽然没有电容屏体验好,但是用起来也不会有什么问题

  四个IO引脚分别为 X+ X- Y+ Y-

  通过不同的电平组合,再读取 ADC 数值,就能实现 XY 坐标的读取,按下力度 Z 的识别


u16 Touch_GetPoint(u16* x, u16* y)
{
  u16 z;
  TS_XP_O;
  TS_XM_O;
  TS_YP_I;
  TS_YM_I;
  TS_XP_H;
  TS_XM_L;
  *x = ADC_Get(1);
  TS_XP_I;
  TS_XM_I;
  TS_YP_O;
  TS_YM_O;
  TS_YP_H;
  TS_YM_L;
  *y = ADC_Get(2);
  TS_XP_O;
  TS_XM_I;
  TS_YP_I;
  TS_YM_O;
  TS_XP_H;
  TS_YM_L;
  z = 4095 - (ADC_Get(2) - ADC_Get(1));
  TS_XP_O;
  TS_XM_O;
  TS_YP_O;
  TS_YM_O;
  return z;
}

  几乎就完成了

  这里还是强调几点,一是读取 XY 坐标后,需要进行触屏校准,其实就是获取触屏对应显示屏最左、右、上、下的 4 个 ADC 值

  再 Map 到显示屏分辨率上

  例如:x = Touch_Map(ts_y, 270, 3660, 0, 320)

     y = Touch_Map(ts_x, 434, 3636, 0, 240)

  对照得到最终的显示屏上的坐标值


  二是电阻触屏比较廉价,做工可能也不太好,直接驱动大概率会遇到跳坐标问题

  这个问题解决方法可以采用数据滤波,剔除大小值

  也有个更直接的办法,按下力度较大时,Z 值较大,Z 值大到一定程度,误触跳坐标问题可以减小到很低

  但是你用同一个力道按屏幕, Z 值在整个屏幕的 ADC 值是不一样的,需要先做一次 Map,把坐标 Map 成全屏的力道,再获取 Z 值时,Z 值大于 Map 数据的,才能算为触摸按下

  不多说还是上图:







使用特权

评论回复

相关帖子

沙发
GSDDDD| | 2021-8-21 21:53 | 只看该作者
楼主可否分享程序供参考学习下,我想用CH32V103读取.NC文件里面的G代码发送给GRBL下位机,NC文件也是中文的
半年过去了,还不知道如何实现这些功能

使用特权

评论回复
板凳
gtbestom|  楼主 | 2021-8-23 09:36 | 只看该作者
GSDDDD 发表于 2021-8-21 21:53
楼主可否分享程序供参考学习下,我想用CH32V103读取.NC文件里面的G代码发送给GRBL下位机,NC文件也是中文的 ...

那篇贴说的中文指的是中文长文件名,并不是说文件内容是中文的
只要你不需要显示中文长文件名,就完全可以按照短文件名打开读写文件
我不清楚这个NC文件是什么,如果是文本文件,一般是GBK编码,直接读取然后发送就可以
如果不是文本文件,就要去做相应的解码,这个跟文件系统没关系
这里面的文件系统已经可以跑起来了,可以直接用
https://bbs.21ic.com/icview-3055964-1-1.html
邮箱留个,我发你中文长文件名的

使用特权

评论回复
地板
GSDDDD| | 2021-8-23 22:14 | 只看该作者
.NC文件和打印文件一样,里面是G代码,在电脑上用记事本可以打开

只有个邮箱:1290217740@qq.com

使用特权

评论回复
5
gtbestom|  楼主 | 2021-8-24 10:40 | 只看该作者
GSDDDD 发表于 2021-8-23 22:14
.NC文件和打印文件一样,里面是G代码,在电脑上用记事本可以打开

只有个邮箱: ...

我发你了,你把要发送的文件 改名为 TEST.NC 放在根目录下

使用特权

评论回复
6
GSDDDD| | 2021-8-24 21:22 | 只看该作者
还没有收到邮件。
我的电脑是Win7 64位的,WCH-LINKV1.1不是每次都能成功下载程序,但也不是不能烧录

捕获.JPG (65.97 KB )

捕获.JPG

使用特权

评论回复
7
gtbestom|  楼主 | 2021-8-25 16:39 | 只看该作者
GSDDDD 发表于 2021-8-24 21:22
还没有收到邮件。
我的电脑是Win7 64位的,WCH-LINKV1.1不是每次都能成功下载程序,但也不是不能烧录 ...

你这个驱动没装好吧,应该还有个 Win7 的驱动可以装一下试试,邮件你看下收到没

使用特权

评论回复
8
GSDDDD| | 2021-8-25 19:37 | 只看该作者
邮件收到了,没有找到WCH-LINKV驱动程序,貌似官网上也没有驱动程序

使用特权

评论回复
9
kkzz| | 2021-9-1 16:07 | 只看该作者
这个arduino的接口吗   

使用特权

评论回复
评论
gtbestom 2021-9-1 18:52 回复TA
是的,可以直接接Arduino的扩展板 
10
hudi008| | 2021-9-1 16:07 | 只看该作者
这个是官网的板子吗?

使用特权

评论回复
11
lzmm| | 2021-9-1 16:14 | 只看该作者
可以直接在arduino开发吗   

使用特权

评论回复
12
minzisc| | 2021-9-1 16:14 | 只看该作者
没有完整的工程代码吗   

使用特权

评论回复
13
selongli| | 2021-9-1 16:15 | 只看该作者
这个要做gui的显示吗  

使用特权

评论回复
14
fentianyou| | 2021-9-1 16:15 | 只看该作者
现在fatfs的读取速度太慢了。  

使用特权

评论回复
15
xiaoyaodz| | 2021-9-1 16:16 | 只看该作者
可以驱动多少帧的速度   

使用特权

评论回复
16
febgxu| | 2021-9-1 16:16 | 只看该作者
期待楼主的mp3的设计了。   

使用特权

评论回复
17
sdlls| | 2021-9-1 16:17 | 只看该作者
CH32V103 开发板的资料有吗   

使用特权

评论回复
18
pixhw| | 2021-9-1 16:18 | 只看该作者
CH32V103 开发板可以用arduino?   

使用特权

评论回复
19
xiaoyaodz| | 2021-9-1 16:18 | 只看该作者
连续刷屏是否有顿挫感呢?   

使用特权

评论回复
20
fentianyou| | 2021-9-1 16:18 | 只看该作者
spi的最大的速度是多少?   

使用特权

评论回复
评论
gtbestom 2021-9-1 19:02 回复TA
我用SPI2,最大18M 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

109

帖子

0

粉丝