我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 2064|回复: 5

STM32 CAN收发实验源码

[复制链接]

该用户从未签到

21

主题

42

回帖

70

积分

二级逆天

积分
70

社区居民

QQ
发表于 2014-10-17 15:52:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
#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;//CAN工作模式;CAN_Mode_Normal(0):普通模式,CAN_Mode_LoopBack(1):环回模式

    delay_init();             //延时函数初始化      
    NVIC_Configuration();      //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
    uart_init(9600);         //串口初始化为9600
    LED_Init();                  //初始化与LED连接的硬件接口
    LCD_Init();                   //初始化LCD   
    KEY_Init();                //按键初始化            
   
    CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_8tq,CAN_BS1_7tq,5,CAN_Mode_LoopBack);//CAN初始化环回模式,波特率450Kbps   

     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,"2012/9/11");
    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==KEY_RIGHT)//KEY0按下,发送一次数据
        {
            for(i=0;i<8;i++)
            {
                canbuf=cnt+i;//填充发送缓冲区
                if(i<4)LCD_ShowxNum(60+i*32,210,canbuf,3,16,0X80);    //显示数据
                else LCD_ShowxNum(60+(i-4)*32,230,canbuf,3,16,0X80);    //显示数据
             }
            res=Can_Send_Msg(canbuf,8);//发送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==KEY_UP)//WK_UP按下,改变CAN的工作模式
        {      
            mode=!mode;
              CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_8tq,CAN_BS1_7tq,5,mode);//CAN普通模式初始化, 波特率450Kbps
            POINT_COLOR=RED;//设置字体为红色
            if(mode==0)//普通模式,需要2个开发板
            {
                LCD_ShowString(60,130,200,16,16,"Nnormal Mode ");        
            }else //回环模式,一个开发板就可以测试了.
            {
                 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,3,16,0X80);    //显示数据
                else LCD_ShowxNum(60+(i-4)*32,290,canbuf,3,16,0X80);    //显示数据
             }
        }
        t++;
        delay_ms(10);
        if(t==20)
        {
            LED0=!LED0;//提示系统正在运行   
            t=0;
            cnt++;
            LCD_ShowxNum(60+48,170,cnt,3,16,0X80);    //显示数据
        }           
    }
}
回复

使用道具 举报

该用户从未签到

24

主题

2233

回帖

3259

积分

二级逆天

积分
3259

社区居民忠实会员社区劳模最爱沙发优秀斑竹奖终身成就奖

QQ
发表于 2014-10-17 18:13:36 | 显示全部楼层
广告位出租,价格可以商量。
回复

使用道具 举报

  • TA的每日心情
    开心
    4 天前
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    737

    回帖

    1527

    积分

    二级逆天

    积分
    1527

    终身成就奖社区居民忠实会员

    QQ
    发表于 2014-10-17 18:15:52 | 显示全部楼层
    人生最大的差距是勤奋的差距,人生最大的遗憾就是勤奋不够!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 206 天

    [LV.7]常住居民III

    34

    主题

    1万

    回帖

    3万

    积分

    三级逆天

    积分
    34710

    终身成就奖特殊贡献奖原创先锋奖社区居民忠实会员社区劳模最爱沙发原创达人优秀斑竹奖宣传大使奖

    QQ
    发表于 2014-10-17 19:08:50 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-7 21:17
  • 签到天数: 103 天

    [LV.6]常住居民II

    92

    主题

    1万

    回帖

    7万

    积分

    三级逆天

    积分
    73181

    终身成就奖特殊贡献奖原创先锋奖社区居民忠实会员社区劳模最爱沙发社区明星原创达人优秀斑竹奖宣传大使奖

    QQ
    发表于 2014-10-18 00:01:07 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    2003

    回帖

    2060

    积分

    二级逆天

    积分
    2060

    终身成就奖社区居民忠实会员社区劳模最爱沙发优秀斑竹奖

    QQ
    发表于 2014-10-18 08:34:55 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    每日签到,有金币领取。


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表