|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請高手指點LPCCAN問題, |
| 作者:sprthunder 欄目:ARM技術(shù) |
can工作在自首發(fā)的測試模式,只有屏蔽濾波才能接收,請高手指點 void Can1Init(void) { PCONP |= 0x00006000; // 給CAN1和CAN2模塊供電,且只要供電,接收濾波即使能 PINSEL1 |= 0x00054000; // 把P0中3個引腳分配給RD2、TD2、RD1,TD1是專用引腳,不再P0-P3內(nèi),不需要分配 CAN1MOD |= 0x00000001; // CAN1進入復位模式 CAN1BTR = 0x0017C003; // 波特率設(shè)置,250K,不知怎樣計算? // CAN1IER = 0x00000001; // 只允許接收中斷 CAN1MOD = 0x00000004; //04 // CAN1進入運行模式 CANAFMR = 0x00000002; // 允許修改 FiltRam = ((uint32 *) 0xE0038000); CANSFF_sa = 0x00000004; // 濾波,2個ID,且是4的倍數(shù) CANSFF_GRP_sa = 0x7D0; // 標準幀組地址表為空 CANEFF_sa = 0x7D0; // 擴展幀地址表為空 CANEFF_GRP_sa = 0x7D0; // 擴展幀組地址表為空 CANENDofTable = 0x7D0; // CAN接收,800 - 6 * SFF_sa *FiltRam = 0x60006001; // ID = 00、01 CANAFMR = 0x00000002; // 旁路濾波:02;FULLCan:04;NORMAL:00 } void Can1SndDat(void) { CAN1CMR |= 0x00000020; // 請求BUFFER1發(fā)送 if((CAN1SR & 0x00000004) == 0x00000004){ CAN1TFI1 = 0x00080000; // 8個字節(jié)數(shù)據(jù),11位ID,數(shù)據(jù)幀 CAN1TID1 = 0x00000001; // 設(shè)置ID值 CAN1TDA1 = 0x11223344; CAN1TDB1 = 0x55667788; CAN1CMR = 0x00000010; //10 // 進入測試方式 } } |
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |