当前位置:网站首页>3 - wire SPI Screen Drive
3 - wire SPI Screen Drive
2022-06-27 00:49:00 【NULL 1969.】
Préface
J'ai récemment étudié3LignespiMode de conduite de l'écran.La puce d'entraînement de l'écran estILI9488,Par rapport à4Ligne,3LignespiL'écran n'est pas utiliséDCÉcrivez les ordres/Écrivez la ligne de contrôle des données.DC=0Ça veut dire écrire une commande,DC=1Pour écrire des données.
3LignespiFormat des données

3LignespiOui.DCLes commandes sont placées sur chaque8Le BIT le plus élevé de données de bits.C'est encore un peu ennuyeux,Voici quelques exemples concrets.
Si elle est adoptéespiEnvoyer0x55,Généralement utiliséMSB,La façon dont le haut est devant.
AlorsSDA(MOSI)La ligne de données est comme ça:
01010101
Si vous voulezdcLes ordres,Et0x55Pour envoyer en deux octets,HypothèsesDC=1,EtSDA(MOSI)Les données sont les suivantes:
10101010 1
Faible octet Octets élevés
C'est l'équivalent de0x55Convertir en:0x80AA.En même temps, il doit être réglé dans un micro - ordinateur à puce uniquespiLes données sont les suivantes:9Bits.Après plusieurs tâtonnements,La formule de conversion est::
uint16_t data = (0x8000&(cmd<<15))|(0x7f&(cmd>>1)) ;
En particulier:esp32La fonction d'envoi doit être modifiée comme suit:
static void lcd_cmd(spi_device_handle_t spi, const uint8_t cmd)
{
esp_err_t ret;
spi_transaction_t t;
uint16_t data=0;
data = (0x8000&(cmd<<15))|(0x7f&(cmd>>1)) ;
memset(&t, 0, sizeof(t)); //Zero out the transaction
t.length=9; //Command is 8 bits
t.tx_buffer=&data; //The data is the cmd itself
ret=spi_device_polling_transmit(spi, &t); //Transmit!
assert(ret==ESP_OK); //Should have had no issues.
}
static void lcd_data_byte(spi_device_handle_t spi, const uint8_t cmd)
{
esp_err_t ret;
spi_transaction_t t;
uint16_t data=0;
data = (0x8000&(cmd<<15))|(0x80|cmd>>1) ;
memset(&t, 0, sizeof(t)); //Zero out the transaction
t.length=8; //Command is 8 bits
t.tx_buffer=&data; //The data is the cmd itself
ret=spi_device_polling_transmit(spi, &t); //Transmit!
assert(ret==ESP_OK); //Should have had no issues.
}
Ce n'est qu'à ce moment - là qu'il peut communiquer correctement avec l'écran . Cela a réduit la vitesse de communication , Difficile à adopter dmaTransfert de grandes quantités de données. La raison en est que chaque octet doit d'abord être démonté et assemblé en 2 Octets à envoyer .Et ses inconvénients, Il a fallu du temps pour régler ça .
Personnellement3Lignespi Les moyens de communication et leurs absurdités ,Très inefficace,Toujours honnête et pratique4LignespiOu un micro - ordinateur à puce unique8080 Interface pour conduire l'écran . Certains écrans DCUtilisation des brochesRSPour exprimer, L'auteur n'a pas compris au début , J'ai trouvé cet écran sans DCPin, Pour étudier 3Lignespi, Le taux de rafraîchissement de l'écran est trop faible , Rafraîchir un écran entier nécessite 10sHorloge.ConclusionRS=DC, Remplacer immédiatement par 4Lignespi,C'est pas vrai..
MaisILI9488 Le point le plus pittoresque de cette puce d'entraînement est l'utilisation de spiComment,Soutien uniquement8bitEt18bitFormat de couleur pour,Non pris en charge16bit. C'est le résultat de l'expérience , Il est écrit dans ses spécifications que 4LignespiHeure,Peut soutenir16bitCouleur,
Mais0x3AÉcrire0x05(16bit) L'écran ne montre pas ,Seulement0x3AÉcrire0x06(18bit)Heure, Pour afficher la couleur . C'est très déprimant, papa .
ILI9488 18 Format de couleur bit

D'habitude, c'est16Couleur du BIT, C'est pour ça que 18 La couleur du BIT doit être changée .Et ensuite passerspiEnvoyer. Le mode de conversion spécifique est
colors[0] = (color>>8)&0xf8;
colors[1] = (color>>3)&0xfc;
colors[2] = (color<<3)&0xfc;
Rouge au premier octet , Vert au deuxième octet , Bleu à trois octets en bas , Et tout est aligné haut . Position basse vide . L'écran s'affiche normalement après la conversion .
边栏推荐
- 网络中的网络(套娃)
- 运用物理信息神经网络求解流体力学方程
- 高清滑环生产过程当中的质量如何把控
- Is it safe for CITIC Securities Commission to open an online account and speculate in stocks
- matlab数据类型 —— 字符型
- The most complete hybrid precision training principle in the whole network
- CPU exception handling
- 自定义MVC(导成jar包)+与三层架构的区别+反射+面试题
- 當Transformer遇見偏微分方程求解
- 国产框架MindSpore联合山水自然保护中心,寻找、保护「中华水塔」中的宝藏生命
猜你喜欢

运用物理信息神经网络求解流体力学方程

Technical dry goods | what is a big model? Oversized model? Foundation Model?

Le principe le plus complet de formation à la précision hybride pour l'ensemble du réseau

Understanding of "the eigenvectors corresponding to different eigenvalues cannot be orthogonalized"

气液滑环与其他滑环的工作原理有什么区别

Timing mechanism of LwIP

Mindspire, a domestic framework, cooperates with Shanshui nature conservation center to find and protect the treasure life in the "China water tower"

Skills needing attention in selection and purchase of slip ring

Lambda expression

墨者学院-X-Forwarded-For注入漏洞实战
随机推荐
接口测试框架实战(一) | Requests 与接口请求构造
How do new investors open accounts online? Is it safe to open accounts online and speculate in stocks
BootstrapBlazor + FreeSql实战 Chart 图表使用(2)
Deep learning method for solving mean field game theory problems
气液滑环与其他滑环的工作原理有什么区别
Skills needing attention in selection and purchase of slip ring
Encapsulate servlet unified processing request
“message“:“Bad capabilities. Specify either app or appTopLevelWindow to create a session“
Oracle 数据库基本知识概念
JS library for number formatting
这3个并发编程的核心,竟然还有人不知道?
How to easily describe the process of machine learning?
Mindspire, a domestic framework, cooperates with Shanshui nature conservation center to find and protect the treasure life in the "China water tower"
Le principe le plus complet de formation à la précision hybride pour l'ensemble du réseau
统计无向图中无法互相到达点对数[经典建邻接表+DFS统计 -> 并查集优化][并查集手册/写的详细]
统一结果集的封装
Great health industry annual must attend event, 2022 Shandong International Great Health Industry Expo
【Mysql】时间字段默认设置为当前时间
find_ Detailed use guide of CIRC
巧记大小端字节序