ddllxxrr 发表于 2020-10-6 19:20

【AT-START-F403A测评】五、模拟驱动SPI屏并发现个问题

本帖最后由 ddllxxrr 于 2020-10-6 19:26 编辑

<p>我有个1.3寸的SPI屏。有例程的,把例程里的OLED.c及字库做为一个子目录。统统考进AT的一个例程里。</p>

<p>我定义的是四根线:</p>

<p>PB12----------SCL</p>

<p>PB13----------SDA</p>

<p>PB14----------RES</p>

<p>PB15----------DC</p>

<p>&nbsp;</p>

<p>具体就改一下初始化:</p>

<pre>
<code>RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOB, ENABLE);       //ê1ÄüA¶Ë¿úê±Öó
        GPIO_InitStructure.GPIO_Pins = GPIO_Pins_12|GPIO_Pins_13|GPIO_Pins_14|GPIO_Pins_15;       
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT_PP;                //íÆíìêä3ö
        GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_50MHz;//Ëù¶è50MHz
        GPIO_Init(GPIOB, &amp;GPIO_InitStructure);          //3õê¼»ˉGPIOD3,6
        GPIO_SetBits(GPIOB,GPIO_Pins_12|GPIO_Pins_13|GPIO_Pins_14|GPIO_Pins_15);        </code></pre>

<p>在头文件中:</p>

<pre>
<code>#define OLED_SCLK_Clr() GPIO_ResetBits(GPIOB,GPIO_Pins_12)//CLK
#define OLED_SCLK_Set() GPIO_SetBits(GPIOB,GPIO_Pins_12)

#define OLED_SDIN_Clr() GPIO_ResetBits(GPIOB,GPIO_Pins_13)//DIN
#define OLED_SDIN_Set() GPIO_SetBits(GPIOB,GPIO_Pins_13)

#define OLED_RST_Clr() GPIO_ResetBits(GPIOB,GPIO_Pins_14)//RES
#define OLED_RST_Set() GPIO_SetBits(GPIOB,GPIO_Pins_14)

#define OLED_DC_Clr() GPIO_ResetBits(GPIOB,GPIO_Pins_15)//DC
#define OLED_DC_Set() GPIO_SetBits(GPIOB,GPIO_Pins_15)
                     
#define OLED_BLK_Clr()GPIO_ResetBits(GPIOA,GPIO_Pins_4)//CS
#define OLED_BLK_Set()GPIO_SetBits(GPIOA,GPIO_Pins_4)</code></pre>

<p>背景也没有用,直接接到3.3V。</p>

<p>&nbsp;</p>

<p>至于片选我直接选中。毕竟就一个SPI。</p>

<p>以下是运行结果:</p>

<p>&nbsp;</p>

<p></p>

<p>&nbsp;</p>

<p>我刷成蓝屏就说明驱动成功了,又画个圆,也可以看到,但我万万没想到显示个字符会不出来,就是黑块,我想是SPI屏的显示字符部分有毛病。</p>

<p>不想了,想得蛋痛。欲知后事如何且看下回分解吧!</p>

<p>&nbsp;</p>

<p>发现个问题,手册明明说所有GPIO口在AHB,为什么初始化时都是APB2,表示不懂了。</p>

<p></p>

<pre>
<code>RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOB, ENABLE);       </code></pre>

<p>按手册的应是:RCC_AHBPeriphClockCmd(RCC_AHBPERIPH_GPIOB, ENABLE);&nbsp;&nbsp; &nbsp;&nbsp;</p>

littleshrimp 发表于 2020-10-6 20:08

<p>以前用别的单片机这么操作这个屏正常吗?</p>

ddllxxrr 发表于 2020-10-7 14:25

littleshrimp 发表于 2020-10-6 20:08
以前用别的单片机这么操作这个屏正常吗?

<p>我记得正常啊!屏已经清成蓝的啊?</p>

okhxyyo 发表于 2020-10-9 15:06

<p>雅特力AT-START-F403A测评汇总</p>

<p><a href="https://bbs.eeworld.com.cn/thread-1143018-1-1.html" target="_blank">https://bbs.eeworld.com.cn/thread-1143018-1-1.html</a></p>

w494143467 发表于 2020-10-13 12:37

<p>都能刷屏幕了,那SPI驱动肯定是没有问题的,那么有问题的就只有可能是显示字符的函数出问题了,调试的时候看看显示字符写的内容是什么,可能全写0x000000导致显示黑色。</p>

freebsder 发表于 2020-10-13 21:04

<p>为什么都喜欢gpio模拟<img height="50" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/funk1.gif" width="53" /></p>

RCSN 发表于 2020-10-13 22:13

<p>逻辑分析仪看下</p>
页: [1]
查看完整版本: 【AT-START-F403A测评】五、模拟驱动SPI屏并发现个问题