|
1、基于艾克姆科技的STC32G12K128開發(fā)板+CAN轉(zhuǎn)TTL模塊,提供CAN通信的測(cè)試程序,程序是庫函數(shù)版本。
2、實(shí)驗(yàn)連接圖如下:(本實(shí)驗(yàn)用到的是單片機(jī)的CAN2)
CAN總線通信實(shí)驗(yàn)連接圖.jpg (1.17 MB, 下載次數(shù): 52)
下載附件
2022-9-5 17:07 上傳
3、CAN總線通信肯定不能只有一個(gè)節(jié)點(diǎn),所以用戶還需電腦端連接個(gè)USB轉(zhuǎn)CAN的轉(zhuǎn)換器方便測(cè)試。USB轉(zhuǎn)CAN轉(zhuǎn)換器的CANH連接上圖CANH端子,USB轉(zhuǎn)CAN轉(zhuǎn)換器的CANL連接上圖CANL端子。
4、硬件連接好后,電腦打開USB轉(zhuǎn)CAN測(cè)試用軟件,設(shè)置波特率500K,通信界面如下:
實(shí)驗(yàn)現(xiàn)象截圖.jpg (386.88 KB, 下載次數(shù): 49)
下載附件
2022-9-5 17:12 上傳
5、程序源碼基于Keil C251編寫。詳見附件
單片機(jī)源程序如下:- #include "can.h"
- /**************************************************************************
- 功能描述:CAN口初始化
- 入口參數(shù):無
- 返回值:無
- *************************************************************************/
- void CAN_Init(void)
- {
- CAN_InitTypeDef CAN_InitStructure; //結(jié)構(gòu)定義
-
- P0_MODE_IO_PU(GPIO_Pin_2|GPIO_Pin_3); //P0.2~P0.3 設(shè)置為準(zhǔn)雙向口
- CAN2_SW(CAN2_P02_P03); //CAN2_P02_P03,CAN2_P52_P53,CAN2_P46_P47,CAN2_P72_P73
- EAXSFR(); //將EAXFR位置1,以訪問在XDATA區(qū)域的擴(kuò)展SFR
- CAN_InitStructure.CAN_Enable = ENABLE; //CAN功能使能 ENABLE或DISABLE
- CAN_InitStructure.CAN_IMR = CAN_ALLIM; //CAN中斷寄存器 CAN_DOIM,CAN_BEIM,CAN_TIM,CAN_RIM,CAN_EPIM,CAN_EWIM,CAN_ALIM,CAN_ALLIM,DISABLE
- CAN_InitStructure.CAN_SJW = 0; //重新同步跳躍寬度 0~3
- CAN_InitStructure.CAN_SAM = 0; //總線電平采樣次數(shù) 0:采樣1次; 1:采樣3次
- //CAN總線波特率=Fclk/((1+(TSG1+1)+(TSG2+1))*(BRP+1)*2)
- CAN_InitStructure.CAN_TSG1 = 2; //同步采樣段1 0~15
- CAN_InitStructure.CAN_TSG2 = 1; //同步采樣段2 1~7 (TSG2 不能設(shè)置為0)
- CAN_InitStructure.CAN_BRP = 3; //波特率分頻系數(shù) 0~63
- //24000000/((1+3+2)*4*2)=500KHz
- CAN_InitStructure.CAN_ACR0 = 0x00; //總線驗(yàn)收代碼寄存器 0~0xFF
- CAN_InitStructure.CAN_ACR1 = 0x00;
- CAN_InitStructure.CAN_ACR2 = 0x00;
- CAN_InitStructure.CAN_ACR3 = 0x00;
- CAN_InitStructure.CAN_AMR0 = 0xff; //總線驗(yàn)收屏蔽寄存器 0~0xFF
- CAN_InitStructure.CAN_AMR1 = 0xff;
- CAN_InitStructure.CAN_AMR2 = 0xff;
- CAN_InitStructure.CAN_AMR3 = 0xff;
- CAN_Inilize(CAN2,&CAN_InitStructure); //CAN2 初始化
-
- NVIC_CAN_Init(CAN2,ENABLE,Priority_1); //中斷使能, CAN1/CAN2; ENABLE/DISABLE; 優(yōu)先級(jí)(低到高) Priority_0,Priority_1,Priority_2,Priority_3
- }
- /*********************************END FILE********************************************/
復(fù)制代碼
Keil代碼下載:
程序.7z
(45.67 KB, 下載次數(shù): 47)
2022-9-7 02:23 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|