最近做仿真同学的毕设,使用的Protues8.17版本的,涉及到了OLED显示。

然后把所有的元器件放置号后,给STM32最小系统烧录好程序,开始仿真,发现仿真运行的特别慢,OLED也一直黑屏,我一度以为是我的程序出现了问题。就在实物上试了试,但是实物上OLED和其他的模块运行都是正常的。

出现这种问题,就在CSDN和b站等各种途径搜索解决办法,搜所了很长时间,发现给的方法基本都是让改单片机的时钟频率,我照着方法改了但是还是不行。仿真中时间运行的巨慢,然后就自己摸索,不断尝试就找到了解决办法,在这个记录一下,也希望能解决大家的问题。

        首先,是需要改我们STM32F103最小系统的程序,我是这样改的如下图

选择72MHZ,8Times,8Times选择默认的0也应该没事。

        第二步,找到我们的OLED,因为Protues中的OLED都是4线I2C接口的,所以都会需要这个4.7K的上拉电阻,如下图

                  

我这上拉电阻,写的4700是因为在搜索资料的时候,有的博主说改成4700就好了,我试了试,改了但是没有用,然后我就没有改回4.7k,我感觉4.7k和4700是一样的,就没有改。

        此时就是开启仿真后,OLED一直黑屏,然后我就等待很长时间,我究竟看看它显不显示现不现实,经过很长时间后,发现显示了一个字,就是那种很慢很慢的去显示的,那就不是我的程序的问题了。

        第三步,双击4.7K上拉电阻,进入修改属性的界面,会看到一个Model Type,把4.7K的上拉电阻的Model Type从ANALOG改为DIGITAL,就是把模拟的改为数字的,如下图:

两个4.7K的电阻都要这改,改完之后,再去点击开始仿真,你就会发现,OLED显示的特别快,就变正常了,下面的时间显示也变正常了,如下图:

        这样改完,OLED基本就可以正常运行,正常显示。

        还有一个就是,仿真中LED不亮的情况,就只是接一个电源,电阻,LED、GND都不亮的情况,如下图:

        这个解决方法也是,同理,双击小灯,进入属性界面,会看到一个Model Type,把LED的Model Type从ANALOG改为DIGITAL,然后再去点击开始仿真,就亮了起来。如下图:

        ​​​​​​​        ​​​​​​​        

        希望这篇文章可以帮到大家!

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐