我用CAN 範例can_ex3_external_transmit ,想改500 kbps 外接CAN通訊。以下的問題 !!
1. 為什麼設定是 GPIO30 and GPIO31 ,而不是 GPIO33 跟 GPIO32 ,如果不行我要怎麼使用那兩個GPIO CAN Connect ?
2. CAN_setBitTiming(CANA_BASE,24,0,8,5,3); // 500kbps ,我不確定 bandrate 設定是對的嗎 ? 還有 the baud rate prescaler extension 是甚麼意思??
3. 有 Interrupt register 的配置嗎?
Susan Yang:
123 1232 说:1. 為什麼設定是 GPIO30 and GPIO31 ,而不是 GPIO33 跟 GPIO32 ,如果不行我要怎麼使用那兩個GPIO CAN Connect ?
您可以自己在device.h内修改为GPIO32/33。
123 1232 说:2. CAN_setBitTiming(CANA_BASE,24,0,8,5,3); // 500kbps ,我不確定 bandrate 設定是對的嗎 ? 還有 the baud rate prescaler extension 是甚麼意思??
bitRate is the desired bit rate (bits/sec)
您现在要求的bitRate是多少?可以看一下 用户指南 26.12.1 Bit Time and Bit Rate 以及 Figure 26-17. Structure of the CAN Core's CAN Protocol Controller
123 1232 说:3. 有 Interrupt register 的配置嗎?
能否请您详细说一下?没太明白您的意思
,
123 1232:
可是我有嘗試過改成我要對GPIO33/32,bps 看起來也是設定是對的,可是我還是無法接通。
指的是有 Interrupt register table 嗎?
,
Susan Yang:
您现在使用的是launchpad?查看原理图可知:
GPIO32_CANTX与GPIO33_CANRX连接了 SN65HVD234DR
也就是说,若是您使用的是launchpad,且想使用板载的CAN收发器的话,就需要使用GPIO32/GPIO33
您是如何修改的?硬件电路的话,您是如何连接的?若是可以的话,请给出相关图片
,
123 1232:
我找到問題了, 開發版上有個S9 電路,他可以切換 CAN 跟 FSI 我沒注意到。之後到你說的device.h 改成 #define _LAUNCHXL_F280049C 就可以跟其他CAN通訊了。 但我現在還有其他問題。 我嘗試把 CAN_L(GPIO33) 設定為中斷接收,但是他會變成不斷進入中斷程式,反而Main 裡面的code 被中斷給佔用走了。
,
Susan Yang:
“我嘗試把 CAN_L(GPIO33) 設定為中斷接收,但是他會變成不斷進入中斷程式,反而Main 裡面的code 被中斷給佔用走了。”
关于这个问题,建议您重新发帖,详细描述一下您现在的软硬件情况并给出相关截图,谢谢