久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4237|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

STM32 CAN總線溫度采集系統(tǒng)(點(diǎn)對(duì)點(diǎn))源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
STM32 CAN總線測(cè)試程序  本程序分主機(jī)程序和從機(jī)程序 硬件平臺(tái)是本人自己設(shè)計(jì)的開(kāi)發(fā)板 經(jīng)測(cè)試程序運(yùn)行穩(wěn)定


單片機(jī)源程序如下:
  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();          //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)

  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   原來(lái)的 CAN_Mode_Normal

  21.         delay_init();                     //延時(shí)函數(shù)初始化          
  22.         uart_init(9600);                 //串口初始化為9600
  23.         LED_Init();                                  //初始化與LED連接的硬件接口
  24.         LCD_Init();
  25.         POINT_COLOR=RED;//設(shè)置字體為紅色
  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;//設(shè)置字體為藍(lán)色
  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);                        //顯示負(fù)號(hào)
  50.                                 temperature=-temperature;                                        //轉(zhuǎn)為正數(shù)
  51.                         }else LCD_ShowChar(60+40,150,' ',16,0);                        //去掉負(fù)號(hào)
  52.                         LCD_ShowNum(60+40+8,150,temperature/10,2,16);        //顯示正數(shù)部分
  53.                         LCD_ShowNum(60+40+32,150,temperature%10,1,16);        //顯示小數(shù)部分
  54.                        
  55.                         temp=temperature;
  56.             for(i=0;i<8;i++)
  57.                                 canbuf0[i]=temp;        //溫度賦值并發(fā)送到主機(jī)
  58.                         Can_Send_Msg(canbuf0,8);//發(fā)送8個(gè)字節(jié)
  59.                         temp=temperature>>8;
  60.                         for(i=0;i<8;i++)
  61.                                 canbuf1[i]=(temp);        //溫度賦值并發(fā)送到主機(jī)
  62.                         Can_Send_Msg(canbuf1,8);//發(fā)送8個(gè)字節(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. }
復(fù)制代碼

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


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:304620 發(fā)表于 2018-5-3 15:02 | 只看該作者
不錯(cuò),謝謝分享
回復(fù)

使用道具 舉報(bào)

板凳
ID:290871 發(fā)表于 2018-5-19 10:44 | 只看該作者
short temperature是啥意思
回復(fù)

使用道具 舉報(bào)

地板
ID:1018878 發(fā)表于 2022-6-9 16:23 | 只看該作者
這個(gè)io接口怎么設(shè)置的
回復(fù)

使用道具 舉報(bào)

5#
ID:833102 發(fā)表于 2023-7-11 17:21 | 只看該作者
666好文章
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人一级 | 国产欧美日韩精品一区 | 欧美激情视频一区二区三区免费 | 欧美午夜一区二区三区免费大片 | 中文字幕在线观看一区 | 在线观看中文字幕视频 | 99re热精品视频| 伊人精品在线 | 国产激情一区二区三区 | 久久1区| 久久免费精品 | 免费一区二区 | 亚洲最新网址 | 美女视频一区二区三区 | 欧美在线一区二区三区 | 久久午夜精品 | 一区免费 | 亚洲成人一级 | 日韩国产一区二区三区 | 在线观看免费黄色片 | 亚洲天堂成人在线视频 | 玖玖免费 | 久在草 | 亚洲精品成人在线 | 一区视频| 日韩免费视频 | 亚洲激情在线 | 国产一区精品在线 | 超级黄色一级片 | www.国产.com| 日日干天天干 | av影音| 国产成人久久av免费高清密臂 | 国产亚洲精品91 | 日韩视频在线一区 | 国产激情视频在线观看 | av一区二区三区在线观看 | 欧美在线免费 | 亚洲国产欧美一区二区三区久久 | 亚洲人va欧美va人人爽 | 日韩在线大片 |