|
使用STM32F102CB,第一次使用CAN功能,用的I/O复用到PB8,PB9。看到网上说CAN接收中断在无复用管脚时候是使用USB_LP_CAN1_RX0_IRQHandler。复用管脚时候使用CAN1_RX1_IRQHandler, 在CAN1_RX1_IRQHandler中写的接收中断函数,却一直无法进入。在回环模式下,能看到接收数据正常,接收字节数和ID都正确,但回环模式也不能进入中断,发送时候在PB9能观察到输出波形。看所有寄存器数据均正常。困扰好久 后来实在找不到问题,就将USB_LP_CAN1_RX0_IRQHandler,USB_HP_CAN1_TX_IRQHandler均打开,却发现能进入USB_HP_CAN1_TX_IRQHandler中断,进一步将USB_HP_CAN1_TX_IRQHandler关闭,只有USB_LP_CAN1_RX0_IRQHandler,CAN1_RX1_IRQHandler两个打开,发现接收数据后进入了USB_LP_CAN1_RX0_IRQHandler中断。取消回环模式,从PB8引脚输入数据,还是只能进入USB_LP_CAN1_RX0_IRQHandler中断,接收的数据均正常。 |
HAL_UART_Receive_IT不管设置size是多少,我串口一次性发4个字符,最后保存在buffer的也只有一个元素
Error in final launch sequence: Failed to execute MI command: target remote localhost:61234
使用CubeMx第二次生成的代码编译时报错
stm32 SPI 实现biss.c
STM32F103C6T6如何设计为类似话筒麦克风的模拟信号采样通过USB传给电脑
用F103的串口能跑多快?
F103和G474的180°移相區別
怎么将keil工程更换为vscode工具链?
ST25R3911B无法读取到标签,MCU采用的是STM32F103C8
STM32F103 PA0 EXIT 上拉电阻不能太大
微信公众号
手机版
报文接收过滤,你配置了嘛?
CAN收发中断跟管脚如何复用肯定没有关系。发送中断只跟哪个邮箱空了有关;
接收中断只跟哪个FIFO接收到数据的事件有关。接收时数据具体被接收到哪个FIFO跟你
的CAN过滤器配置关联。如果数据接收到FIFO0就进入RX0_IRQHandle,若数据接收到
FIFO1则进入_RX1_IRQHandler服务程序。