数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 5188|回复: 12

[other] 初次使用STC8H4KTL单片机驱动SPI接口TFT屏

[复制链接]
发表于 2022-8-12 13:31:54 | 显示全部楼层 |阅读模式
最近发现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的函数贴在了下面以免标题党文之嫌,以后如果工程做完了、如果有人感兴趣再续贴或发新帖做完整分享吧

  1. uchar bdata bitdata;        //定义可位寻址的数据bitdata
  2. sbit bit7=bitdata^7;        //以下分别定义bitdata各位的名称
  3. sbit bit6=bitdata^6;
  4. sbit bit5=bitdata^5;
  5. sbit bit4=bitdata^4;
  6. sbit bit3=bitdata^3;
  7. sbit bit2=bitdata^2;
  8. sbit bit1=bitdata^1;
  9. sbit bit0=bitdata^0;

  10. //==============写指令============
  11. void write_command(uchar comd)
  12. {
  13. cs=0;
  14. sda=0;scl=0;;scl=1;//D/C=0写指令
  15. bitdata=comd;
  16. sda=bit7;scl=0;scl=1;
  17. sda=bit6;scl=0;scl=1;
  18. sda=bit5;scl=0;scl=1;
  19. sda=bit4;scl=0;scl=1;
  20. sda=bit3;scl=0;scl=1;
  21. sda=bit2;scl=0;scl=1;
  22. sda=bit1;scl=0;scl=1;
  23. sda=bit0;scl=0;scl=1;
  24. cs=1;
  25. }
  26. //===============写8位数据=================
  27. void  write_data(uchar dat)
  28. {
  29. cs=0;
  30. sda=1;scl=0;scl=1;//D/C=1写数据
  31. bitdata=dat;
  32. sda=bit7;scl=0;scl=1;
  33. sda=bit6;scl=0;scl=1;
  34. sda=bit5;scl=0;scl=1;
  35. sda=bit4;scl=0;scl=1;
  36. sda=bit3;scl=0;scl=1;
  37. sda=bit2;scl=0;scl=1;
  38. sda=bit1;scl=0;scl=1;
  39. sda=bit0;scl=0;scl=1;
  40. cs=1;
  41. }
复制代码

  1. //=======写24位数据函数=============
  2. void LCD_WR_DATA(u32 da)
  3. {
  4.     uchar temp1,temp2,temp3;
  5.     temp1=da>>16;
  6.     temp2=da>>8;
  7.     temp3=da;
  8.     write_data(temp3);
  9.     write_data(temp2);
  10.     write_data(temp1);
  11. }
复制代码





用手机拍摄彩屏怎么才能还原真实颜色呢?我每次都弄不好,每次拍的图片颜色都严重失真,希望有懂行指点一二。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 2家元 +80 收起 理由
家睦 + 60
玛德陛下 + 20 認真發帖

查看全部打赏

发表于 2022-8-12 18:58:54 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-12 20:17:34 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-8-12 21:03:42 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-8-12 22:05:31 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-8-12 23:17:42 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-13 09:33:30 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-13 09:38:06 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-8-13 11:30:49 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-13 20:57:13 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-10-12 15:54:43 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-10-12 16:46:59 | 显示全部楼层
游客请登录后查看回复内容

打赏

参与人数 1家元 +20 收起 理由
慕名而来 + 20 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-12 21:09:20 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-12-12 09:45 , Processed in 1.825203 second(s), 16 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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