實驗目的:
把CAN總線控制器接收到的數據直接發送出去。包括:標準數據幀、擴展數據幀、標準遠程幀、擴展遠程幀。
推薦采樣點位置
采樣點 = ((1+BS1)/(1+BS1+BS2))*100%
當CAN總線波特率大于800K時,推薦采樣點位置75%。
當CAN總線波特率大于500K時,推薦采樣點位置80%。
當CAN總線波特率小于等于500K時,推薦采樣點位置87.5%。
位時序計算方法
stm8單片機源程序如下:
- /***********************************************************************
- * 說 明: CAN轉發數據實驗
- * 開發平臺: 劍齒虎STM8開發板
- * 作 者: 劉洋 張殿東
- * 版 本: V1.0
- * IAR開發環境 版本 V2.20.1
- * ST庫函數 版本 V2.2.0
- ***********************************************************************/
- #include "pbdata.h"//引入自定義公共頭文件
- void BSP_Configuration(void);//硬件初始化函數聲明
- /***********************************************************************
- * 函 數 名: main
- * 功能說明: c程序入口
- * 形 參:無
- * 返 回 值: 錯誤代碼(無需處理)
- ***********************************************************************/
- int main(void)
- {
- BSP_Configuration();//硬件驅動初始化函數
-
- while(1)//主程序循環,反復執行循環體里的語句
- {
- //LED_Demo1();//在主程序中調用LED_Demo1()函數
- //LED_Demo2();//在主程序中調用LED_Demo2()函數
- //UART1_Printf_Demo();
- }
- }
- /***********************************************************************
- * 函 數 名: BSP_Configuration
- * 功能說明: 初始化硬件設備。只需要調用一次。該函數配置CPU寄存器和外設的寄存器并初始化一些全局變量。
- * 形 參:無
- * 返 回 值: 無
- ***********************************************************************/
- void BSP_Configuration(void)
- {
- CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//時鐘速度為內部16M,1分頻,
- UART1_Congfiguration();//調用RS232串口1初始化函數
- LED_Init();//調用LED初始化函數
- CAN_Configuration();//調用CAN初始化函數
- rim();//打開總中斷
- }
- /*斷言函數:它的作用是在編程的過程中為程序提供參數檢查*/
- #ifdef USE_FULL_ASSERT
- void assert_failed(u8* file,u32 line)
- {
- while(1)
- {
- }
- }
- #endif
復制代碼
【眾拳】劍齒虎STM8的CAN實驗代碼下載:
眾拳劍齒虎STM8的CAN總線數據轉發實驗程序.zip
(1.57 MB, 下載次數: 110)
2017-11-29 11:19 上傳
點擊文件名下載附件
|