时钟配置配置两个时钟,即高数时钟和低速时钟。不懂为什么报警告。 按照我的理解正常,不休眠的时候芯片正常运行只需要配置高速晶振就可以,低速32.768k晶振是低功耗的时保持代码运行用。 所以一开始只配置了高速晶振(而且配置两个时钟会报警告),初始化SPI外设后,调用hal库的SPI数据发送接发送的数据,使用逻辑分析仪抓到的波形就是错乱的,根本不能解析。 反复配置了几十次,花了几天时间,最后对照c031的官方开发板工程时钟相关的配置,发现必须要初始化两个时钟才可以。 (选择官方开发板生成的工程居然不能编译通过,提示缺少文件,并且在文件目录下都找不到该文件,不是没有添加编译路径),如下图: 综上:必须要配置两个时钟不然SPI的波形会错乱!!!具体的原因未知,没有仔细去查有可能是cbue mx的问题,有可能是内部时钟树就是这样配置的,是我忽略了,这个就要去看内部框图了,这些后面再看。 时钟树配置高速时钟、低速时钟都按照开发板上硬件的规格配置即可,注意SPI 和 I2S是类似的,所以这两个是同一个时钟。 上图是原理图上的晶振频率,填到时钟树的相关参数处即可。 配置SWD口cube mx默认是没有初始化swd接口的,需要自己配置,如下图勾选即可 配置SPI驱动屏幕是主控给屏幕发送数据,主控作为主机,屏幕作为从机,屏幕是单纯的接收、解析主控发送的数据,所以不用全双工模式,配置为主机只发送(Transmit Only Master)即可。 SPI 的配置使用默认的即可,需要修改的是Prescaler 和 NSS,因为我的逻辑分析仪不支持5通道100M的采样率,所以降低了SPI频率方便抓取逻辑信号确认数据是否正确,IO操作是否正确! 我想要接线方便一点,随便一个靠近的IO,所以关闭NSS,自己初始化一个IO来作为SPI的CS引脚。 至此驱动LCD最重要的SPI的初始化完成了,接下来就是验证SPI是否正常使用,能不能被逻辑分析仪正常解析数据是否正确! 实验如下图,在完成SPI、GPIO的初始化之后,由于CS初始化后默认拉高(上图我们配置的),先把CS拉低,然后调用SPI发送0x11这个数据,发送完后再拉高CS引脚,代码如下。 逻辑分析仪捕获的数据 由此可见数据可以正常解析,所以驱动LCD屏幕的第一步已经完成! 在此由衷的感谢一下ST中文论坛给的评测机会!!!我会认真的完成本次评测的! |
拷打cubemx【001】——艰难的选型路
【STM32N6570-DK评测】4.800MHz的点灯
【STM32N6570-DK评测】1.你好N6
兔哥的杂谈【002】——如何性价比更高地去编译STM32
【STM32N6570-DK评测】2.最简点灯
【STM32N6570-DK评测】3.从外部flash启动
【圣诞专享活动】使用TouchGFX做GUI显示:圣诞快乐&Merry Christmas!
X-NUCLEO-IKS4A1实现手势滑动
stm32使用定时器触发dma传输,启动dma没反应的几种情况的解决方法
【Wio Lite AI视觉开发套件】+cube.ai与食物识别