STM32进不了can接受和发送中断can配置应该都没有问题正常模式...网!

STM32进不了can接受和发送中断can配置应该都没有问题正常模式...网

趋势迷

STM32进不了can接受和发送中断can配置应该都没有问题正常模式...

2024-07-07 12:07:00 来源:网络

STM32进不了can接受和发送中断can配置应该都没有问题正常模式...

STM32F042K6的CAN接收中断进不去,求教??
如题🐪🧵——🤭🐦,我的CAN1和CAN2用的相同方式配置🦍🌹_🐭🎖,CAN1接收🧧————🍂🐤、发送没问题🐽🕊--🤥,CAN2只能发送😈🐗——-🏒,进不了接收中断🐜🦬_——🦁,CAN2接收使用的是FIFO0😥|🎱,请教是什么问题?void CAN_HardwareInit(u8 canChan,float bps,u8 mode,u8 rxIntType){ GPIO_InitTypeDef GPIO_InitStructure;CAN_InitTypeDef CAN_InitStructure;CAN_FilterInitTyp有帮助请点赞🏒|☄️。
检查每一路CAN总线是否都正常🐇————🐭☄️。调试时先单独试好每一路🐅⚾-——🌧🐓,当两路一起时😃|🪄🙄,检查是否有冲突🐫|🐺🐪。

STM32进不了can接受和发送中断can配置应该都没有问题正常模式...

STM32F的CAN中断始终进不去,参考了前辈的程序,还是进不去??
肯定可以进🪅😦|💫。ST官方有CAN应用例程🦕_-😹🐯,你直接使用LOOP MODE进行测试🐄——*‍❄。无非是些CAN配置🐈‍⬛——🐍🔮、中断配置方面的问题🌸🎳——-🎯⚾。
线用回环模式测试*-_🖼,如果回环模式通过🦙——🐔,则表示CAN总线驱动无问题🐀_🏅🪲,只和外部电路有关🤑_|👺🌍。如果回环都接收不到说明是程序问题🦃🏐_🦎🎾。
stm32 can可以接收数据,但却无法发送数据,怎么回事??
若正常🌺🐰-_😇😷,那就是另一台CAN节点有问题注意🌞_|🐅🐕‍🦺,两台对接的节点都必须在正常模式下😰😖-|🐗,才能发送成功🤯-——😴,若其中一台不是正常模式☀️😵|_🐑,那另一台正常模式的节点是无法发送成功的若不正常🐱_-😯😘,那就是你的初始化程序有问题STM32的CAN调试思路☁️😭-|🐏🐚,应该是在回环模式下先调通一台🪲_🐑,能正常接收自己发送的数据后😌🐒||🥇,再在正常模式等我继续说🦖🐩|🎫🦓。
进行修理🌞-🍀😍。1🌪🐃——|😚🏐、首先🦇-🌼,将stm32l431rct6CAN在机械主板上拆卸下来🌸🍁|🪢🖼。2🐵🐕‍🦺——-🏒、其次把stm32l431rct6CAN拆开后把用热风枪拆下内部内置主板🧨|_🙀。3🎉😮__🦦、将stm32l431rct6CAN安装在测试机器上重新配置系统即可解决死机问题😟|🕹。
stm32l431rct6 CAN 死机??
程序跑飞了或者进入某些严重错误的中断函数里面去了😿😟——_🦀,你可以仿真看看具体进入哪个中断函数了🐦——🦋,以此来判别错误类型🎮__🤿。一般的错误有 数据溢出(数据超过最大值了)🪀-*🐐,除数为零🦦|🦨,越界访问(一般是数组)等等🙀-_🧸。我曾经使用了sprinft这个函数也造成错误🦦——_🤩🐳,后来吧代入的数组的长度改为偶数就好了🌲🦉————🐃🐾。
void USB_LP_CAN1_RX0_IRQHandler(void) //CAN_FIFO0接收中断{ CAN_RxMessage(&CAN_MessageStd); //接收数据CAN_FRAME_CACHE_Mark(); //缓存数据CAN_FIFORelease(CAN1,CAN_FIFO0); //清中断标志} 估计你要么是没有清中断标志🐃--♟🧧,要么是接收数据的函数写的不对🎭-🪡♣。
如何处理stm32 can 错误??
当二个串口互相对发数据的时候🐝_🦈,接收和发送的过程就可能出现互相干扰的情况♦🌗||🐁,只是这种情况下只要调整下🎮_☁️,互相干扰的情况会改善或者消失🪱🐇-——♠,但是CAN这样发送的时候就会出现错误🤗-_🎉,这种错误需要处理🙄--😠🦀,不处理的话就可能出现离线情况(这时接收和发送都无效)😪🌗-**,如果采用硬件自动处理的话🌏-*🦂,就会出现类似重启的情况😺⛅️_|🐊。
TransmitMailbox可能返回的返回值可能是0.1.2和4☺️🌥_-🌼🕹,你可以看看你发送完以后收到的这个TransmitMailbox是不是等于4😴|——🎐,等于4就没有必要执行你上面的这个循环了🪱_☘️,当返回4时表示当前CAN控制器无空闲邮箱🥉🤣——🌾🦓。CAN是需要至少两个正常节点才能通信的🐫🌪-😍。