数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 987|回复: 9

[Arduino] 请教arduino-ESP8266的SPI时钟最高只能8M吗

[复制链接]
发表于 2022-7-24 22:06:15 | 显示全部楼层 |阅读模式
如题,前些天发帖求救:请教一个arduino-ESP8266的SPI程序问题https://www.mydigit.cn/thread-323818-1-1.html  是用8266驱动SPI-TFT屏时无法刷满一屏,这个问题一直没能解决,因为不熟悉arduino编程也就至今没有找到原因,感觉问题非常诡异,查看对比了可以完美驱动的STC15W单片机的输出波形与ESP8266的输出波形,感觉时序是毫无问题的只是不知道为什么51单片机驱动正常但8266就无法正常驱动,下面是截屏的时序波形:









今天再次测试,发现如果将arduino-SPI的时钟分频改成2分频SPI.setClockDivider(SPI_CLOCK_DIV2);则屏幕会拉到一大半,由此看来屏幕拉开多大竟然与通讯的时钟速度有关,而查看SPI.h才知道,即使设置成2分频的最高频率也只有8MHz,但是当利用这个函数:SPI.beginTransaction(SPISettings(15000000, MSBFIRST, SPI_MODE3));来设置工作频率时却没有作用,希望对arduino-SPI熟悉的坛友能指点一下。

本帖子中包含更多资源

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

x
发表于 2022-7-24 22:35:03 | 显示全部楼层
8266 是HSPI,稍有不同,具体可以看手册

用模拟spi就不存在这个问题,但速度可能慢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-25 07:50:42 | 显示全部楼层
kamp 发表于 2022-7-24 22:35
8266 是HSPI,稍有不同,具体可以看手册

用模拟spi就不存在这个问题,但速度可能慢 ...

现在还没有考虑速度问题,只是想完整的显示一满屏的单色却做不到,用16bit总线分频2时驱动可以拉开大半个屏幕分频越多显示的越窄,用I/O模拟仅仅能拉开80多条线显示一个窄条,这是用C51、STM32驱动彩屏时未曾遇到过的问题。
回复 支持 反对

使用道具 举报

发表于 2022-7-25 11:31:34 | 显示全部楼层
慕名而来 发表于 2022-7-25 07:50
现在还没有考虑速度问题,只是想完整的显示一满屏的单色却做不到,用16bit总线分频2时驱动可以拉开大半个 ...

既然知道, 为何非要用arduino
回复 支持 反对

使用道具 举报

发表于 2022-7-25 12:46:33 | 显示全部楼层
想更灵活,就不使用arduino框架,直接atmega328程序  
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-25 20:18:57 | 显示全部楼层
inthsunshine 发表于 2022-7-25 11:31
既然知道, 为何非要用arduino

业余玩单片机没有系统学习过c编程,搞得年头多了简单的编几句代码对付51单片机还能凑合玩,接触ESP8266后起初想学lua但没学进去就改arduino了因为这东西上手挺容易的,库很丰富、还能用c写一点函数啥的就弄这个了,这次为了用8266驱动TFT屏特意找了一个SPI接口的,不想竟然碰到了一个没有指令/数据选择线的3线屏,需要传输9bit数据才能驱动,而且是18bit颜色的数据量传输量大了很多,速度就不指望了但必须能全屏刷色才能玩呀,结果就此掉坑里了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-25 20:21:49 | 显示全部楼层
devcang 发表于 2022-7-25 12:46
想更灵活,就不使用arduino框架,直接atmega328程序

年龄大些太深的东西学不来了,玩玩简单的算了。
回复 支持 反对

使用道具 举报

发表于 2022-7-25 20:44:40 | 显示全部楼层
慕名而来 发表于 2022-7-25 20:18
业余玩单片机没有系统学习过c编程,搞得年头多了简单的编几句代码对付51单片机还能凑合玩,接触ESP8266后 ...

单片机c语言不需要什么系统学习, 就那几条语句, 最基本的语句就可以了, 我也没特别系统去学习过
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-26 11:53:36 | 显示全部楼层
inthsunshine 发表于 2022-7-25 20:44
单片机c语言不需要什么系统学习, 就那几条语句, 最基本的语句就可以了, 我也没特别系统去学习过 ...

我用keil写点儿简单的C代码也是没问题的,而arduino的库文件貌似多为C++编写的,和keil里的头文件相比感觉乱糟糟的只是粗略的可以看懂,这次碰到的问题在于程序运行的时序图毫无问题但显示现象不一样。
回复 支持 反对

使用道具 举报

发表于 2022-7-26 14:30:31 | 显示全部楼层
慕名而来 发表于 2022-7-25 20:21
年龄大些太深的东西学不来了,玩玩简单的算了。


那可以看看arduino的底层架构结构、核心源码,了解一下

——年龄不会是最大障碍的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-19 09:06 , Processed in 0.140400 second(s), 9 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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