• slider image 442
  • slider image 497
  • slider image 498
  • slider image 499
  • slider image 500
  • slider image 502
:::


Browsing this Thread:   1 Anonymous Users






CAN 的 Normal mode 無法傳送資料?
#1
初級會員
初級會員


查看用戶資訊
各位
想要請教一些問題

我目前用 CAN-BUS 是用這種方式去設定他


CANInitialize( 2,10,6,6,3, CAN_CONFIG_LINE_FILTER_OFF &
CAN_CONFIG_SAMPLE_ONCE &
CAN_CONFIG_VALID_STD_MSG &
CAN_CONFIG_PHSEG2_PRG_ON ) ;

CANSetOperationMode(CAN_OP_MODE_CONFIG) ;

CANSetMask(CAN_MASK_B1, RXB0_MASK, CAN_CONFIG_STD_MSG ) ; // Set Mask For Standard Data Frame
CANSetMask(CAN_MASK_B2, RXB1_MASK, CAN_CONFIG_STD_MSG ) ;

CANSetFilter(CAN_FILTER_B1_F1, RX_Filter0 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B1_F2, RX_Filter1 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B2_F1,RX_Filter2 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B2_F2,RX_Filter3 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B2_F3,RX_Filter4 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B2_F4, RX_Filter5 , CAN_CONFIG_STD_MSG) ;

CANSetOperationMode(CAN_OP_MODE_NORMAL) ;

TX_Data_Buf1[0] = 0x58 ;
TX_Data_Buf1[1] = 0x42 ;
TX_Data_Buf1[2] = 0x43 ;
TX_Data_Buf1[3] = 0x44 ;
TX_Data_Buf1[4] = 0x45 ;
TX_Data_Buf1[5] = 0x06 ;
TX_Data_Buf1[6] = 0x07 ;
TX_Data_Buf1[7] = 0x08 ;

while (1)
{
NullCounter ++ ;

if ( NullCounter > 5000 )
{
NullCounter = 0 ;


TX_Data_Buf1[3] = 0x71; //ADRESH ;
TX_Data_Buf1[4] = 0x66; // ADRESL ;

if (CANIsTxReady( ) )
{
CANSendMessage( MESSAGE_ID1,TX_Data_Buf1,8,CAN_TX_PRIORITY_0 &
CAN_TX_STD_FRAME &
CAN_TX_NO_RTR_FRAME ) ;
PORTDbits.RD4 ^= 0xFF;
}

}

if ( CANIsRxReady() )

{
CANReceiveMessage(&RX_ID1,RX_Data_Buf1,&RX_Data_Len1,&RX1_Message_Flag ) ;

CANData[0] = RX_Data_Buf1[0] ; // Low Byte
CANData[1] = RX_Data_Buf1[3] ; // High Byte

PORTDbits.RD7 = 1;
PORTD = CANData[0];
ttt=PORTD;
PutD(ttt);
}

}


在以上的程式裡面
我設定的 filter 如下
#define MESSAGE_ID1 0x002
#define RX_Filter0 0x002
#define RX_Filter1 0x001
#define RX_Filter2 0x00
#define RX_Filter3 0x00
#define RX_Filter4 0x00
#define RX_Filter5 0x00
#define RXB0_MASK 0x7ff // 0b111 1111 1100
#define RXB1_MASK 0x7ff

如果我設定他的 operation mode 是 loopback mode
我可以成功的收回我自己丟出去的資料

目前我遇到的問題是
如果我改成 normal mode
我在 CanSendMessage 的地方設定一個 breakpoint
這樣我發現,他只會進入三次
第三次以後就不會在進入 CanSendMessage 這地方
不知道問題出在哪裡?

另外,我接另一個 PIC,裡面的程式是和以上的完全一樣
可是我卻都沒有收到任何資料

不知道各為能不能幫我解決這個問題?
我不曉得我問題出來哪裡
是不是要在另外處理什麼 buffer?
在送和接的部分?

麻煩各位了
謝謝

發表於: 2008/2/26 11:26
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------