最近真的好怠惰- -基本上软件是一点没学,板子只画了一点点,一点没焊- -
最近在学习怎么在TFT上显示二维码,本来想着有库的话应该挺简单.结果一捣鼓(加摸鱼)就花了两个星期- -而且说到底到现在也不太知道为什么就成了…把我个人的学习经历发出来以供大佬提建议!
话说CSDN还有真人吗.有没有别的论坛介绍一下啊.为什么大家都不评论呢.
嘛.先介绍我的硬件设备:
硬件准备:
1.MCU:GD32F407VET6(LC同款天空星)
2.1.8寸的TFT屏幕一个
3.杜邦线若干
软件准备:
1.二维码开源库:链接: GITHUB_QrCode
2.大佬的参考案例:链接: B站始余欢大佬
思路和做法
一开始我想着应该直接用C语言的malloc函数就行.结果完全不行啊.会出现这种情况.
可以看出三个用于定位的回字只剩下一个了.扫码也扫不出来什么.
说到这.还有一个问题- -就是GD32的SPI不知道为什么会变成这样
(下面这张图要感谢群里的盐藻大佬帮我抓的时序!)
而正常的时序应该是这样的(ST7735)
可以看到SPI还没发送完CS就开始拉高了.结果就是屏幕根本没接收到发送的数据.
我仔细看了LC方面提供的源码(因为这个屏幕是从之前做示波器那里拆下来的),发现这里没加阻塞函数.所以导致没发送完就执行下一句了.解决办法也很简单.加一个阻塞语句判断发送为空就行。
//SPI_FLAG_TRANS: transmit on-going flag
while(spi_i2s_flag_get(SPI1,SPI_FLAG_TRANS) == SET);
好哦说回正题.
这个二维码库的话用系统自带的MALLOC函数是不行的.而且是大大的不行.会乱码.
但是好在GD32有自己的动态函数库.(虽然我也不知道哪里来的.但是大佬的代码里有)
所以现在的文件框架如下:
现在再生成二维码就可以了.
代码放在这里
链接: TFT屏幕显示二维码
接线图如上。
对了对了,请大家来加加我这个Q群吧。群号:985199414,我什么都会做的!