MCU的CAN TX RX无数据问题

MCUCAN TX RX无数据问题

/*superyangMCU-qq群:450803186*/



MCUCAN TX无数据问题是由于TJA10505V供电没有接,我一直量的是TJA1050的脚是3V,这个电压不是外部供进去的,这是由于MCURX TX平时有3V导致这个TJA1050上也是电压,同时这个时候量了TJA1050CANL CANH上也有委有微的正旋杂波,由于这个原因开如我就没有去查TAJ105的的供电问题,以为它正常工作了,其实TJA1050没供5V都没有工作的,其它的电压波形都是CAN TX CANRX电平串过来的,但是TJA1050没有外部供5V是不能正常工作的。同时TJA1050没有上电工作时,MCU TX RX上面也会无数据的,当我们在MCU里面循环发送数据到TJA1050,MCU TX上只第一条数据发出来了,因为MCU CAN是通过邮箱发送的,他会和TJA1050之间有一个通迅,他们之间有一套通迅协议,如果TJA1050没能工作,这个协议就不正常,那么MCU邮箱里面的数据就发不出来,因此发了一条TJA1050没有正常链接的话,MCU发数邮箱就停下来了,再写数据也不会妯来了的。所以这个时间MCU循环发送数据,RX TX上也没有数据,因为它没有正常工作。

### CAN 芯片 TX 端口连接 对于 CAN (Controller Area Network) 协议,通信方式采用的是总线型结构,不同于 UART 的点对点通信模式。CAN 总线上所有的节点都是通过两条信号线 CAN_H 和 CAN_L 来实现双向通讯的[^1]。 具体来说,在实际应用中: - **CAN 收发器**:通常用于将微控制器单元(MCU)上的逻辑电平转换成能够在物理层上传输的标准 CAN 信号。 - **TXD/RXD 接口**:这些接口主要用于 MCU 或其他处理器与 CAN 控制器之间的串行通信。而真正的 CAN 物理层传输并不区分传统的 TXRX 概念,而是依赖于 CAN_High (CAN_H) 及 CAN_Low (CAN_L) 两根线路来完成数据交换。 因此,如果提到 CAN 芯片中的 "TX" 端口,则该术语在此上下文中可能指的是 CAN 控制器内部负责发送消息的部分。然而,在外部硬件连接方面,并不存在直接对应的传统意义上的 “TX” 或者 “RX”。相反,应该关注如何正确地将 CAN 设备接入共享的 CAN_H/CAN_L 总线网络。 为了建立两个 CAN 设备间的有效通信链路,应当按照以下原则操作: - 将第一个设备的 CAN_H 连接到第二个设备的 CAN_H; - 同样地,把第一个设备的 CAN_L 连接到第二个设备的 CAN_L。 这种配置确保了所有参与同一 CAN 网络内的装置都能互相监听并响应彼此发出的数据帧。 ```python # Python 示例代码展示 CAN 配置概念(仅作示意) can_config = { 'device_1': {'can_h': 'pin_A', 'can_l': 'pin_B'}, 'device_2': {'can_h': 'pin_C', 'can_l': 'pin_D'} } def connect_can_devices(config): """模拟连接两个 CAN 设备""" print(f"Connecting {config['device_1']['can_h']} to {config['device_2']['can_h']}") print(f"Connecting {config['device_1']['can_l']} to {config['device_2']['can_l']}") connect_can_devices(can_config) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值