gtbestom 发表于 2021-8-20 18:44

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

#申请原创# @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

gtbestom 发表于 2021-8-24 10:40

GSDDDD 发表于 2021-8-23 22:14
.NC文件和打印文件一样,里面是G代码,在电脑上用记事本可以打开

只有个邮箱: ...

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

GSDDDD 发表于 2021-8-24 21:22

还没有收到邮件。
我的电脑是Win7 64位的,WCH-LINKV1.1不是每次都能成功下载程序,但也不是不能烧录

gtbestom 发表于 2021-8-25 16:39

GSDDDD 发表于 2021-8-24 21:22
还没有收到邮件。
我的电脑是Win7 64位的,WCH-LINKV1.1不是每次都能成功下载程序,但也不是不能烧录 ...

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

GSDDDD 发表于 2021-8-25 19:37

邮件收到了,没有找到WCH-LINKV驱动程序,貌似官网上也没有驱动程序

kkzz 发表于 2021-9-1 16:07

这个arduino的接口吗   

hudi008 发表于 2021-9-1 16:07

这个是官网的板子吗?

lzmm 发表于 2021-9-1 16:14

可以直接在arduino开发吗   

minzisc 发表于 2021-9-1 16:14

没有完整的工程代码吗   

selongli 发表于 2021-9-1 16:15

这个要做gui的显示吗

fentianyou 发表于 2021-9-1 16:15

现在fatfs的读取速度太慢了。

xiaoyaodz 发表于 2021-9-1 16:16

可以驱动多少帧的速度   

febgxu 发表于 2021-9-1 16:16

期待楼主的mp3的设计了。   

sdlls 发表于 2021-9-1 16:17

CH32V103 开发板的资料有吗   

pixhw 发表于 2021-9-1 16:18

CH32V103 开发板可以用arduino?   

xiaoyaodz 发表于 2021-9-1 16:18

连续刷屏是否有顿挫感呢?   

fentianyou 发表于 2021-9-1 16:18

spi的最大的速度是多少?   
页: [1] 2 3
查看完整版本: 沁恒 CH32V103 驱动4线电阻触摸屏