51单片机从TFT彩屏上读取某一点颜色的函数方法

我这个问题是从字模来的,因为字模显示时会打印背景色,如果不想显示背景色,那就要把那句话去掉。但由此而来一个问题:字体色素点会堆聚显示,而不是呈现字体布局,以至于显不出字体... 我这个问题是从字模来的,因为字模显示时会打印背景色,如果不想显示背景色,那就要把那句话去掉。但由此而来一个问题:字体色素点会堆聚显示,而不是呈现字体布局,以至于显不出字体形状(乱码)。那么我就想读取当前非色素点的颜色然后打印出(好处是可以输出字体而又不会污染了复杂背景色;如果你能有解决这个方法的其它函数也可以:不污染背景色),从而是字体布局正确化 展开
 我来答
11kxmx
2016-05-26 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:70%
帮助的人:2433万
展开全部
这和TFT液晶屏型号有关,还和你采用何种接线方式有关
如以下是ILI9341控制的单片机读方法,它采用16位数据线,所以一次读出16位,一个点本来要读3次,但时序要求读4次
R = *(__IO uint16_t *)Bank1_LCD_D 实际上就是 给液晶屏一个读信号,然后单片机从总线上获得数据,这是STM32单片机以8088总线的时序操作方式,因此只是一条指令,由于51单片机是8位数据线,因此这一句要分好多语句才能完成
uint16_t LCD_RD_data(void) //连续读4次
{
uint16_t R=0, G=0, B=0 ;
R = *(__IO uint16_t *)Bank1_LCD_D; /*FIRST READ OUT DUMMY DATA*/
R = *(__IO uint16_t *)Bank1_LCD_D; /*READ OUT RED DATA */
B = *(__IO uint16_t *)Bank1_LCD_D; /*READ OUT BLACK DATA*/
G = *(__IO uint16_t *)Bank1_LCD_D; /*READ OUT GREEN DATA*/
return (((R>>11)<<11) | ((G>>10)<<5) | (B>>11));
}
uint16_t LCD_GetPoint(uint16_t x , uint16_t y)//完整的读程序
{
uint16_t temp;
LCD_SetCursor(x, y);
LCD_ILI9341_CMD(0x2e); /* 读数据 的命令*/
temp=LCD_RD_data();
return (temp);
}
东莞大凡
2024-08-07 广告
作为东莞市大凡光学科技有限公司的一员,我们深知Matlab圆点标定板在相机标定中的重要性。该标定板通过均匀分布的圆点,帮助精确计算相机参数,优化成像效果。Matlab强大的编程功能,使得我们能够灵活设计标定板,调整圆点大小、数量和分布,以满... 点击进入详情页
本回答由东莞大凡提供
DJ影逸
2016-05-25 · TA获得超过869个赞
知道小有建树答主
回答量:1815
采纳率:0%
帮助的人:587万
展开全部
显示屏既然可以写数据 也可以读数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式