STM32--CAN總線應(yīng)運
1. 硬件基礎(chǔ)
2. 軟件設(shè)計
在進行軟件設(shè)計時,我們首先來看這樣的一個結(jié)構(gòu)體:
typedef struct
{
} CanTxMsg;
這是定義一個can數(shù)據(jù)包的結(jié)構(gòu)體,即一個CAN數(shù)據(jù)包包含以上幾個部分。
注意: DLC定義發(fā)送數(shù)據(jù)的長度,其范圍為:0~8。
下面我們來編寫CAN驅(qū)動:
對CAN模塊初始化
void CAN_CfgInit(void)
{
}
這里為can 定義一個專門的結(jié)構(gòu)體,便于數(shù)據(jù)處理:
typedef struct CAN_Socket CAN;
struct CAN_Socket {
};
數(shù)據(jù)打包,并且發(fā)送
void CAN_TxSocket( CAN *can_Socket )
{
}
接收函數(shù)放在中斷程序中處理:
void USB_LP_CAN1_RX0_IRQHandler(void)
{
}
這里只介紹CAN使用方法和主要驅(qū)動程序,測試程序可自行設(shè)計。
本人的測試程序:
~INT8U SendBuff1[]="Hello";
INT8U SendBuff2[]="World";
INT8U SendBuff3[]="ADC= 255";
void main(void)
{
}
接收數(shù)據(jù),并在液晶上打印出來!
void Disp_CanReceveData( void )
{
}
評論