
基于STM32U575的RFID信息审查系统?
STM32CubeProgrammer 安装错误,请帮忙解决,谢谢
STM32CubeMX 配置STM32G070RBT6TR时无法使能PVD中断
STM32G070RBT6TR STM32CubeMX ADC配置后使用的是内部参考电压且零点的读数太大了
测评在哪里发?
Group Study vs. Solo Study: What Works Best?
STM32G070CBT6使用硬件SPI无法读出W25Q128的ID
STM32G0B0CET6的usb的时钟只能用48MHz的晶振来实现吗?
STM32G070RET6,中断优先级配置没有效果
如图:STM32F437的TIM10支持从模式吗?
2、写flash有一套完成的流程,比方开锁、写、关锁,随随便便写会出错是自然的事情。
不知你为何每次要将邮箱号写入flash,实在要写就挑个其它空置的地方不更好吗?
这不是我对地址0x00000002进行操作,是HAL库函数对这个地址的操作。
不是很明白。
但你的问题来看,大概率是你在做CAN应用是,某些变量没有初始化就用了,请就这点好好检查确认。
我用cubeMX配置的系统,使用了HAL库。在使用CAN的时候调用了HAL库的发送函数,HAL库的can发送函数中,自己写了0x00000002的地址。
我的操作是,写0x08000000~0x087FFFFF范围内的FLASH,我操作这部分的FLASH的时候会禁止CAN的功能。
写这个的意思是,HAL库本身的CAN是有Bug的,使用HAL库时候,如果同时使用CAN和操作FLASH时需要注意。
最后,麻烦你看清楚后再说,好歹得知道HAL库是个什么东西吧,那又不是我写的
哦 不好意思~!的确没怎么看明白你描述的,你之前的描述是这样的:
【问题详情】[md]芯片型号为:STM32F407VET6。使用CubeMX配置并生成HAL库。
在工程中,配置了CAN1和CAN2。并且调用了函数
HAL_CAN_AddTxMessage(&hcan2, &xCAN2.TxHead, xCAN2.TxdBuf, (uint32_t *)CAN_TX_MAILBOX1);
该函数的第4个形参是邮箱号,值为2.在
HAL_CAN_AddTxMessage
函数中,将邮箱号重映射为一个地址,然后对这个地址(0x00000002)进行数据写入。系统硬件设计的自举模式为主FLASH,如下图所示。
每次调用
HAL_CAN_AddTxMessage
发送函数,都会向0x00000002U
的地址中写入一个值,导致FLASH报错,具体错误如下图所示发生FLASH故障后,会导致FLASH操作失败。
解决方法:操作FLASH时,禁用CAN功能;操作FLASH结束,开启CAN功能。
说实在的,如果没有你后来的 两次 补充 我的确很多疑惑和不解,来回讨论了自然才清晰些。后面会就你提及的bug做验证测试。