主题中讨论的其他器件: TCAN1042DEVM
尊敬的 TI:
我 正在调试以下示例代码"mcan_message_rx_lp_MSPM0G3507_nortos_ticlang"、以接收来自我的 python 脚本的数据。
(PYTHON 脚本用于连接 ST MCU 并连接 TJA1050收发器、以将数据包发送到其他 与 MSPM0连接的 TJA1050收发器)
正如、 我使用的不是 TCAN1042DEVM、而是 TJA1050收发器、但我无法在 MSPM0端接收原始数据、我能够在获得 CAN 中断时进行即时调试

上面的值是中断时得到的值、然后我去看看 CAN 的寄存器数据表
有关更多详细信息、请检查 MCAN_IR (偏移量= 7050h)[复位= 80000000h]、发现这些位即使在中断 函数调用后未清除、也会变为高电平。

由于这个原因,我无法进入吹气状态。

我附上了自己的 Python 代码供参考、请让我知道背后的问题、
import can
import time
import can.interfaces.serial
COMM_PORT_NAME = 'COM20'
data=[23, 25, 0, 1, 3, 1, 4, 1]
ID_FROM_PYTHON = 0x1
#ID_FROM_MCU = 0x36
def send_one():
"""Sends a single message."""
bus = can.interface.Bus(interface='serial', channel= COMM_PORT_NAME, bitrate=200000)
try:
while True:
msg_from_mcu = can.Message(
arbitration_id=ID_FROM_PYTHON, data=data, is_extended_id=True)
# Send the message to the MCU
bus.send(msg_from_mcu)
print(f"Message sent on {bus.channel_info}, Data: {data}, CAN ID: {ID_FROM_PYTHON}")
time.sleep(0.4)
except can.CanError:
print("Message NOT sent")
bus.shutdown()
if __name__ == "__main__":
send_one()