標題: STM32 CAN總線溫度采集系統(tǒng)(點對點)源程序 [打印本頁]

作者: 陳林19861106    時間: 2018-5-2 23:26
標題: STM32 CAN總線溫度采集系統(tǒng)(點對點)源程序
STM32 CAN總線測試程序  本程序分主機程序和從機程序 硬件平臺是本人自己設計的開發(fā)板 經測試程序運行穩(wěn)定


單片機源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"         
  7. #include "can.h"
  8. #include "ds18b20.h"

  9. int main(void)
  10. {
  11.         u8 i=0,t=0;
  12.         u8 canbuf1[8];
  13.         u8 canbuf0[8];
  14.         u8 temp;
  15.         u8 res;
  16.     short temperature;             
  17.         NVIC_Configuration();          //設置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應優(yōu)先級

  18.         KEY_Init();                                //按鍵初始化                        
  19.    
  20.         CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_1tq,CAN_BS1_6tq,9,CAN_Mode_Normal);//CAN初始化環(huán)回模式,波特率500Kbps   原來的 CAN_Mode_Normal

  21.         delay_init();                     //延時函數初始化          
  22.         uart_init(9600);                 //串口初始化為9600
  23.         LED_Init();                                  //初始化與LED連接的硬件接口
  24.         LCD_Init();
  25.         POINT_COLOR=RED;//設置字體為紅色
  26.         LCD_ShowString(60,50,200,16,16,"Mini STM32");       
  27.         LCD_ShowString(60,70,200,16,16,"DS18B20+CAN TEST");       
  28.         LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
  29.         LCD_ShowString(60,110,200,16,16,"2016/6/6");
  30.         LCD_ShowString(60,130,200,16,16,"LoopBack Mode");
  31.         LCD_ShowString(60,190,200,16,16,"Send Data:");
  32.         while(DS18B20_Init())        //DS18B20初始化       
  33.         {
  34.                 LCD_ShowString(60,130,200,16,16,"DS18B20 Error");
  35.                 delay_ms(200);
  36.                 LCD_Fill(60,130,239,130+16,WHITE);
  37.                 delay_ms(200);
  38.         }                                                                  
  39.         LCD_ShowString(60,130,200,16,16,"DS18B20 OK");
  40.         POINT_COLOR=BLUE;//設置字體為藍色
  41.         LCD_ShowString(60,150,200,16,16,"Temp:   . C");         
  42.         while(1)
  43.         {                        
  44.                 if(t%10==0)//每100ms讀取一次
  45.                 {                                                                          
  46.                         temperature=DS18B20_Get_Temp();       
  47.                         if(temperature<0)
  48.                         {
  49.                                 LCD_ShowChar(60+40,150,'-',16,0);                        //顯示負號
  50.                                 temperature=-temperature;                                        //轉為正數
  51.                         }else LCD_ShowChar(60+40,150,' ',16,0);                        //去掉負號
  52.                         LCD_ShowNum(60+40+8,150,temperature/10,2,16);        //顯示正數部分
  53.                         LCD_ShowNum(60+40+32,150,temperature%10,1,16);        //顯示小數部分
  54.                        
  55.                         temp=temperature;
  56.             for(i=0;i<8;i++)
  57.                                 canbuf0[i]=temp;        //溫度賦值并發(fā)送到主機
  58.                         Can_Send_Msg(canbuf0,8);//發(fā)送8個字節(jié)
  59.                         temp=temperature>>8;
  60.                         for(i=0;i<8;i++)
  61.                                 canbuf1[i]=(temp);        //溫度賦值并發(fā)送到主機
  62.                         Can_Send_Msg(canbuf1,8);//發(fā)送8個字節(jié)
  63. //                        if(res)LCD_ShowString(60+80,190,200,16,16,"Failed");                //提示發(fā)送失敗
  64. //                        else LCD_ShowString(60+80,190,200,16,16,"OK    ");                         //提示發(fā)送成功                   
  65.                 }                                  
  66.                  delay_ms(10);
  67.                 t++;
  68.                 if(t==20)
  69.                 {
  70.                         t=0;
  71.                         LED0=!LED0;
  72.                 }
  73.         }
  74. }
復制代碼

所有資料51hei提供下載:
CAN實驗.rar (1.32 MB, 下載次數: 177)



作者: 404535507    時間: 2018-5-3 15:02
不錯,謝謝分享
作者: asdf196369    時間: 2018-5-19 10:44
short temperature是啥意思
作者: 大臉盤子    時間: 2022-6-9 16:23
這個io接口怎么設置的
作者: dl1234    時間: 2023-7-11 17:21
666好文章




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1