踩坑实录#4: 单片机系列

关于单片机的坑。

踩坑实录#4: 单片机系列
Photo by Vishnu Mohanan / Unsplash

Pt. 1: Stm32H743VIT6的CubeMX时钟配置

如果你不巧的买了这个芯片,而且用了CubeMX来进行配置,那么你可能会遇到一旦时钟配置,单片机就寄了:Stlink连不上,报错Cannot Access Memory等等。大概在这一行:

main.c
main.c

造成这一现象的原因,似乎是System Core->RCC里面的Product Revision被配置为了rev. Y,将其修正为rev. V即可。

参见:

Did CubeMX 6.7 break H7 Clock Configuration?
Hi, I have just updated to CubeMx 6.7 and now my stm32H755 nucleo board shows error while setting to 480MHz. I’m pretty sure that this board can run this fast before. Did the new CubeMx break clock config feature for H7 devices? There is also this crazy aliasing issue with the UI refresh while…

Pt.2 CAN引脚复用配置错误导致无法收发消息

如果你的CAN一点动静都没有(收不到消息也发不出消息),测量引脚也一点变化都没有,这时应该考虑几个可能性:波特率设置错误,采样点设置有问题,晶振有点毛病,以及下面提到的因为没有意识到引脚复用出错导致的问题。

画原理图的时候,可能将CAN配置在了PA12和PA11引脚;但是,回头再打开CubeMX,可能会:

第一眼我看到的时候,差点一下被吓死:不会真是原理图画错了又要飞线了吧?

别急,这次不一定会这么倒霉。我们找到stm32f1xx_hal_msp.c文件:

没错,这里CAN可以被配置在几个不同的REMAP上。看看这个宏的定义:

Pt.3 CAN Filter

这个Filter怎么好像怎么配都不起作用啊?究其原因居然是因为后面多了三个IDE,RTR和0位。真是离谱。