野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 324|回复: 2

STM32F407 霸天虎V2 CAN2与USART1(USB)冲突

[复制链接]
发表于 2024-7-2 14:51:49 | 显示全部楼层 |阅读模式
用CAN分析仪调通了CAN2,能正常收发。但是初始化了USART1 之后, USART1能正常收发,,但是CAN2收不到数据?把USART1相关函数去掉,CAN2又能接收数据???? 到底怎么回事?


HAL_UART_Receive(&huart1, &data_char, 1, 0);
HAL_UART_Receive_IT(&huart1, (uint8_t *)uart_recv_data, sizeof(uart_recv_data));
HAL_UART_RxCpltCallback()

发觉就是跟这几个串口函数相关,用了CAN2就进不了接收中断,收不到数据了,求教~~

回复

使用道具 举报

发表于 2024-7-3 09:19:40 | 显示全部楼层
因为默认UART1与CAN2由有一个管脚是重叠的,你现在相当于先将这个管脚分配给CAN2,再分配给USART1,当然会有冲突.解决办法很简单,更换USART1或是CAN2比如用CAN1或是USART2/3,或者使用管脚重映射将USART1或是can2配置为其他管脚.都可以解决这个问题.具体还要看你硬件上接线是否方便.
野火论坛202407030914328548..png
回复 支持 反对

使用道具 举报

发表于 2024-7-3 09:25:51 | 显示全部楼层
Nalimca 发表于 2024-7-3 09:19
因为默认UART1与CAN2由有一个管脚是重叠的,你现在相当于先将这个管脚分配给CAN2,再分配给USART1,当然会有冲 ...

抱歉,没看清你是使用USB,但是道理还是相同,建议使用cubeMax,里面新建工程配置模块的时候,会标出模块使用哪几个管脚,如果冲突也会提醒你,这样你会很容易发现这些问题.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-8 13:01 , Processed in 0.134870 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表