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

QQ登錄

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

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

STM32CAN收發(fā)實(shí)驗(yàn)源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:710218 發(fā)表于 2020-3-18 16:10 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"         
#include "can.h"

int main(void)
{         
                u8 key;
        u8 i=0,t=0;
        u8 cnt=0;
        u8 canbuf[8];
        u8 res;
        u8 mode=CAN_Mode_LoopBack

        delay_init();            
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2)
        uart_init(115200);         
        LED_Init();                         
        LCD_Init();                          
        KEY_Init();                               

        CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_8tq,CAN_BS1_9tq,4,CAN_Mode_LoopBack)

        POINT_COLOR=RED
        LCD_ShowString(60,50,200,16,16,"WarShip STM32");       
        LCD_ShowString(60,70,200,16,16,"CAN TEST");       
        LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
        LCD_ShowString(60,110,200,16,16,"2015/1/15");
        LCD_ShowString(60,130,200,16,16,"LoopBack Mode");         
        LCD_ShowString(60,150,200,16,16,"KEY0:Send WK_UP:Mode")
        POINT_COLOR=BLUE  
        LCD_ShowString(60,170,200,16,16,"Count:");               
        LCD_ShowString(60,190,200,16,16,"Send Data:");       
        LCD_ShowString(60,250,200,16,16,"Receive Data:");       
        while(1)
        {
                key=KEY_Scan(0);
                if(key==KEY0_PRES)//KEY0°′ÏÂ,·¢Ëíò»′Îêy¾Y
                {
                        for(i=0;i<8;i++)
                        {
                                canbuf[i]=cnt+i;
                                if(i<4)LCD_ShowxNum(60+i*32,210,canbuf[i],3,16,0X80);
                                else LCD_ShowxNum(60+(i-4)*32,230,canbuf[i],3,16,0X80);
                        }
                        res=Can_Send_Msg(canbuf,8);
                        if(res)LCD_ShowString(60+80,190,200,16,16,"Failed");       
                        else LCD_ShowString(60+80,190,200,16,16,"OK    ");                                                                           
                }else if(key==WKUP_PRES
                {          
                        mode=!mode;
                          CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_8tq,CAN_BS1_9tq,4,mode)
                        POINT_COLOR=RE
                        if(mode==0
                        {
                                LCD_ShowString(60,130,200,16,16,"Nnormal Mode ");            
                        }els
                        {
                                LCD_ShowString(60,130,200,16,16,"LoopBack Mode");
                        }
                        POINT_COLOR=BLUE
                }                 
                key=Can_Receive_Msg(canbuf);
                if(key
                {                       
                        LCD_Fill(60,270,130,310,WHITE)
                        for(i=0;i<key;i++)
                        {                                                                            
                                if(i<4)LCD_ShowxNum(60+i*32,270,canbuf[i],3,16,0X80);
                                else LCD_ShowxNum(60+(i-4)*32,290,canbuf[i],3,16,0X80);
                        }
                }
                t++;
                delay_ms(10);
                if(t==20)
                {
                        LED0=!LED0;
                        t=0;
                        cnt++;
                        LCD_ShowxNum(60+48,170,cnt,3,16,0X80);
                }                  
        }
}

CAN收發(fā)實(shí)驗(yàn).rar

344.28 KB, 下載次數(shù): 35, 下載積分: 黑幣 -5

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表