|
最近发现STC新出来的STC8H系有内部RTC实时时钟,在买STC32G的时候也拍了两片STC8H4K64TL准备玩一下,没想到的是一上手连一个LED都没能点亮,反复看数据手册才知道这单片机使用端口之前也是需要设置端口模式的,不似以往其他STC芯片上电默认都是准双向口了,如果是如我一样初次使用这个单片机的坛友需要注意这个问题了,接下来测试了I/O模拟SPI输出和硬件SPI输出,感觉这货的速度较常用的STC15W快了好多,同样的代码SPI刷一屏单色,8H的频率最高只能设置到22.118MHz再高就超出了tft屏的读取速度了,并且此时的刷屏速度已经可以达到4秒了,在此说点儿题外话,这次买了个很坑人的SPI接口屏,但是只看到了他有ILI9481驱动、SPI串口、宽视角高清(IPS屏),没想到这货竟然是9bit的SPI驱动模式并且内定了RGB666的18bit颜色模式的320RGB480(262K)色,用硬件SPI驱动显示一个像素需要传输2*8*3=6个字节,传输一屏数据就有320*480*6=921600个字节,即使用I/O模拟SPI总线来传输数据,传输一屏数据也要320*480*3=460800个字节,我不会计算SPI的传输速度,但我直觉它刷屏一定快不了。
最后因为只是做了一下测试,所以没有完整的代码分享,只是把I/O模拟SPI的函数贴在了下面以免标题党文之嫌,以后如果工程做完了、如果有人感兴趣再续贴或发新帖做完整分享吧
- uchar bdata bitdata; //定义可位寻址的数据bitdata
- sbit bit7=bitdata^7; //以下分别定义bitdata各位的名称
- sbit bit6=bitdata^6;
- sbit bit5=bitdata^5;
- sbit bit4=bitdata^4;
- sbit bit3=bitdata^3;
- sbit bit2=bitdata^2;
- sbit bit1=bitdata^1;
- sbit bit0=bitdata^0;
- //==============写指令============
- void write_command(uchar comd)
- {
- cs=0;
- sda=0;scl=0;;scl=1;//D/C=0写指令
- bitdata=comd;
- sda=bit7;scl=0;scl=1;
- sda=bit6;scl=0;scl=1;
- sda=bit5;scl=0;scl=1;
- sda=bit4;scl=0;scl=1;
- sda=bit3;scl=0;scl=1;
- sda=bit2;scl=0;scl=1;
- sda=bit1;scl=0;scl=1;
- sda=bit0;scl=0;scl=1;
- cs=1;
- }
- //===============写8位数据=================
- void write_data(uchar dat)
- {
- cs=0;
- sda=1;scl=0;scl=1;//D/C=1写数据
- bitdata=dat;
- sda=bit7;scl=0;scl=1;
- sda=bit6;scl=0;scl=1;
- sda=bit5;scl=0;scl=1;
- sda=bit4;scl=0;scl=1;
- sda=bit3;scl=0;scl=1;
- sda=bit2;scl=0;scl=1;
- sda=bit1;scl=0;scl=1;
- sda=bit0;scl=0;scl=1;
- cs=1;
- }
复制代码
- //=======写24位数据函数=============
- void LCD_WR_DATA(u32 da)
- {
- uchar temp1,temp2,temp3;
- temp1=da>>16;
- temp2=da>>8;
- temp3=da;
- write_data(temp3);
- write_data(temp2);
- write_data(temp1);
- }
复制代码
用手机拍摄彩屏怎么才能还原真实颜色呢?我每次都弄不好,每次拍的图片颜色都严重失真,希望有懂行指点一二。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|