|
STM32 CAN總線測(cè)試程序 本程序分主機(jī)程序和從機(jī)程序 硬件平臺(tái)是本人自己設(shè)計(jì)的開(kāi)發(fā)板 經(jīng)測(cè)試程序運(yùn)行穩(wěn)定
0.png (44.76 KB, 下載次數(shù): 65)
下載附件
2018-5-3 02:39 上傳
單片機(jī)源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "can.h"
- #include "ds18b20.h"
- int main(void)
- {
- u8 i=0,t=0;
- u8 canbuf1[8];
- u8 canbuf0[8];
- u8 temp;
- u8 res;
- short temperature;
- NVIC_Configuration(); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
- KEY_Init(); //按鍵初始化
-
- 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
- delay_init(); //延時(shí)函數(shù)初始化
- uart_init(9600); //串口初始化為9600
- LED_Init(); //初始化與LED連接的硬件接口
- LCD_Init();
- POINT_COLOR=RED;//設(shè)置字體為紅色
- LCD_ShowString(60,50,200,16,16,"Mini STM32");
- LCD_ShowString(60,70,200,16,16,"DS18B20+CAN TEST");
- LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
- LCD_ShowString(60,110,200,16,16,"2016/6/6");
- LCD_ShowString(60,130,200,16,16,"LoopBack Mode");
- LCD_ShowString(60,190,200,16,16,"Send Data:");
- while(DS18B20_Init()) //DS18B20初始化
- {
- LCD_ShowString(60,130,200,16,16,"DS18B20 Error");
- delay_ms(200);
- LCD_Fill(60,130,239,130+16,WHITE);
- delay_ms(200);
- }
- LCD_ShowString(60,130,200,16,16,"DS18B20 OK");
- POINT_COLOR=BLUE;//設(shè)置字體為藍(lán)色
- LCD_ShowString(60,150,200,16,16,"Temp: . C");
- while(1)
- {
- if(t%10==0)//每100ms讀取一次
- {
- temperature=DS18B20_Get_Temp();
- if(temperature<0)
- {
- LCD_ShowChar(60+40,150,'-',16,0); //顯示負(fù)號(hào)
- temperature=-temperature; //轉(zhuǎn)為正數(shù)
- }else LCD_ShowChar(60+40,150,' ',16,0); //去掉負(fù)號(hào)
- LCD_ShowNum(60+40+8,150,temperature/10,2,16); //顯示正數(shù)部分
- LCD_ShowNum(60+40+32,150,temperature%10,1,16); //顯示小數(shù)部分
-
- temp=temperature;
- for(i=0;i<8;i++)
- canbuf0[i]=temp; //溫度賦值并發(fā)送到主機(jī)
- Can_Send_Msg(canbuf0,8);//發(fā)送8個(gè)字節(jié)
- temp=temperature>>8;
- for(i=0;i<8;i++)
- canbuf1[i]=(temp); //溫度賦值并發(fā)送到主機(jī)
- Can_Send_Msg(canbuf1,8);//發(fā)送8個(gè)字節(jié)
- // if(res)LCD_ShowString(60+80,190,200,16,16,"Failed"); //提示發(fā)送失敗
- // else LCD_ShowString(60+80,190,200,16,16,"OK "); //提示發(fā)送成功
- }
- delay_ms(10);
- t++;
- if(t==20)
- {
- t=0;
- LED0=!LED0;
- }
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
CAN實(shí)驗(yàn).rar
(1.32 MB, 下載次數(shù): 177)
2018-5-3 02:42 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|