OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2746|回复: 0

STM32精英版TFTLCD扫描方向设置函数疑问

[复制链接]

4

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2020-2-27
在线时间
25 小时
发表于 2020-12-21 16:25:42 | 显示全部楼层 |阅读模式
最近在看TFTLCD的程序,看到LCD扫描方面设置的函数时候,遇到下面的一段,对于红字的部分非常不解。希望哪位高人可以指点一下啊,谢谢!
void LCD_Scan_Dir(u8 dir)
{
        u16 regval=0;
        u16 dirreg=0;
        u16 temp;  
        if((lcddev.dir==1&&lcddev.id!=0X6804&&lcddev.id!=0X1963)||(lcddev.dir==0&&lcddev.id==0X1963))//横屏时,对6804和1963不改变扫描方向!竖屏时1963改变方向
        {                          
                switch(dir)//方向转换
                {
                        case 0:dir=6;break;
                        case 1:dir=7;break;
                        case 2:dir=4;break;
                        case 3:dir=5;break;
                        case 4:dir=1;break;
                        case 5:dir=0;break;
                        case 6:dir=3;break;
                        case 7:dir=2;break;             
                }
        }
        if(lcddev.id==0x9341||lcddev.id==0X6804||lcddev.id==0X5310||lcddev.id==0X5510||lcddev.id==0X1963)//9341/6804/5310/5510/1963,特殊处理
        {
                switch(dir)
                {
                        case L2R_U2D://从左到右,从上到下
                                regval|=(0<<7)|(0<<6)|(0<<5);
                                break;
                        case L2R_D2U://从左到右,从下到上
                                regval|=(1<<7)|(0<<6)|(0<<5);
                                break;
                        case R2L_U2D://从右到左,从上到下
                                regval|=(0<<7)|(1<<6)|(0<<5);
                                break;
                        case R2L_D2U://从右到左,从下到上
                                regval|=(1<<7)|(1<<6)|(0<<5);
                                break;         
                        case U2D_L2R://从上到下,从左到右
                                regval|=(0<<7)|(0<<6)|(1<<5);
                                break;
                        case U2D_R2L://从上到下,从右到左
                                regval|=(0<<7)|(1<<6)|(1<<5);
                                break;
                        case D2U_L2R://从下到上,从左到右
                                regval|=(1<<7)|(0<<6)|(1<<5);
                                break;
                        case D2U_R2L://从下到上,从右到左
                                regval|=(1<<7)|(1<<6)|(1<<5);
                                break;         
                }
                if(lcddev.id==0X5510)dirreg=0X3600;
                else dirreg=0X36;
                if((lcddev.id!=0X5310)&&(lcddev.id!=0X5510)&&(lcddev.id!=0X1963))regval|=0X08;//这句话执行完毕之后,regval=0x0F,可是看9341的datasheet,36H后面跟的parameter的最低两位应该是00,这是为什么?并且为什么设置BGR=1?ML和MH不能同时为0或者1吗?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-14 21:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表