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