ep100can程序
#include <hidef.h>
#include “derivative.h”
#include “can.h”
void init_can0(void)
{
if(CAN0CTL0_INITRQ0)
CAN0CTL0_INITRQ=1;
while(CAN0CTL1_INITAK0);
CAN0BTR0_SJW=1;
CAN0BTR0_BRP=7;
CAN0BTR1 = 0x1c;
//CAN0IDAR0=0xFF;
CAN0IDMR0=0xFF;
CAN0IDMR1=0xFF;
CAN0IDMR2=0xFF;
CAN0IDMR3=0xFF;
CAN0IDMR4=0xFF;
CAN0IDMR5=0xFF;
CAN0IDMR6=0xFF;
CAN0IDMR7=0xFF;
CAN0CTL1 = 0xC0;
CAN0CTL0 = 0x00;
//while(CAN0CTL0_INITRQ1);
while(CAN0CTL1_INITAK1);
while(CAN0CTL0_SYNCH==0);
CAN0RIER_RXFIE=1;
}
can_send(struct msg_a_s msg_a)
{ unsigned long sp;
if(msg_a.len>8)
return(0);
if(CAN0CTL0_SYNCH==0)
return(0);
do
{
CAN0TBSEL=CAN0TFLG;
}while(CAN0TBSEL0);
if(msg_a.RTR0)
{
if(msg_a.ide0)
{
CAN0TXIDR0=(unsigned long)msg_a.id>>3;
CAN0TXIDR1=(unsigned long)msg_a.id<<5;
}
else {
CAN0TXIDR0=(unsigned long)msg_a.id>>21;
CAN0TXIDR1=(unsigned long)(((unsigned long)msg_a.id>>15&0x07)|((unsigned long)msg_a.id>>13&0xE0)|0x18);
CAN0TXIDR2=(unsigned long)msg_a.id>>7;
CAN0TXIDR3=(unsigned long)msg_a.id<<1;
}
for(sp=0;sp<msg_a.len;sp++)
*(&CAN0TXDSR0+sp)=msg_a.data[sp];
}
else
{ if(msg_a.ide0)
{
CAN0TXIDR0=(unsigned long)msg_a.id>>3;
CAN0TXIDR1=(unsigned long)msg_a.id<<5|0x10;
} else
{
CAN0TXIDR0=(unsigned long)msg_a.id>>21;
CAN0TXIDR1=(unsigned long)(((unsigned long)msg_a.id>>15&0x07)|((unsigned long)msg_a.id>>13&0xE0)|0x18);
CAN0TXIDR2=(unsigned long)msg_a.id>>7;
CAN0TXIDR3=(unsigned long)msg_a.id<<1|0x01;
}
}
CAN0TXDLR=msg_a.len;
CAN0TXTBPR=msg_a.pro;
CAN0TFLG=1;
}
can_receive(struct msg_a_s *msg_a)
{ unsigned int sp1;
//if(CAN0RXDLR>8)
//return(0);
while(CAN0RFLG0);
msg_a->len=CAN0RXDLR;
if(msg_a->len>8)
return(0);
else {
msg_a->ide=CAN0RXIDR1_IDE;
if(msg_a->ide1) {
msg_a->id=(unsigned long)(CAN0RXIDR0<<21)|(unsigned long)((CAN0RXIDR1&0xE0)<<13)|
(unsigned long)((CAN0RXIDR1&0x07)<<15)|(unsigned long)(CAN0RXIDR2<<7)|(unsigned long)(CAN0RXIDR3>>1);
msg_a->RTR=(unsigned long)CAN0RXIDR3&0x01;
}
else
{
msg_a->id=(unsigned long)CAN0RXIDR1>>5|(unsigned long)CAN0RXIDR0<<3;
msg_a->RTR=((unsigned long)CAN0RXIDR1&0x10)>>4;
}
}
for(sp1=0;sp1<msg_a->len;sp1++)
msg_a->data[sp1]=*(&CAN0RXDSR0+sp1);
CAN0RFLG=1;
}
#ifndef CAN_H
#define CAN_H
struct msg_a_s
{
unsigned long id;
unsigned int ide;
unsigned int len;
unsigned int RTR;
unsigned int data[8];
unsigned int pro;
};
extern void init_can0(void);
extern can_receive(struct msg_a_s *msg_a);
extern can_send(struct msg_a_s msg_a);
#endif
ep100can程序相关推荐
- 编程精粹 --Microsoft编写优质无错C程序秘诀
献给我的妻子Beth, 以及我的双亲Joseph和Julia Maguire ────为了他们的爱和支持 序 1986年,在为几家小公司咨询和工作了10年之后为了获得编写Macintosh应用程序的经 ...
- POCO C++库学习和分析 -- 序
POCO C++库学习和分析 -- 序 1. POCO库概述: POCO是一个C++的开源库集.同一般的C++库相比,POCO的特点是提供了整一个应用框架.如果要做C++程序应用框架的快速开发,我觉得 ...
- 程序主动进行电话短信报警,自定义电话、短信、钉钉报警通知
程序主动进行电话短信报警,自定义电话.短信.钉钉报警通知 一. 规则说明 这里我们要利用到阿里云的云监控的手段,有一个叫做事件监控的东西,可以通过自定义事件上传来进行监控报警. 流程: 程序发现错误 ...
- 终止js程序执行的方法
js终止程序执行的方法共有三种 (一)在function里面(普通js方法) (1)return; (2)return false; (二)非function方法里面(如ajax方法) alert(& ...
- 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析
目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...
- 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发
基于Golang pmlpml/RxGo程序包的二次开发[阅读时间:约20分钟] 一.ReactiveX & RxGo介绍 1.ReactiveX 2.RxGo 二.系统环境&项目介绍 ...
- 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)
目录[阅读时间:约5分钟] 一.概述 1.Json的作用 2.Go官方 encoding/json 包 3. golang json的主要操作 二.Json Marshal:将数据编码成json字符串 ...
- 基于Golang的对象序列化的程序包开发——myJsonMarshal
基于Golang的对象序列化的程序包开发--myJsonMarshal[阅读时间:约10分钟] 一.对象序列化概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体程序设计及 ...
- 【golang程序包推荐分享】go-ini、viper、godoc
[golang程序包推荐&分享]go-ini.viper.godoc 一.go-ini 1.程序包简介 2.下载安装 3.简单使用[截取自官网] 二.viper 1.程序包简介 2.下载安装 ...
- 基于Golang的监听读取配置文件的程序包开发——simpleConfig_v1
基于Golang的监听&读取配置文件的程序包开发--simpleConfig_v1 [阅读时间:约10分钟] 一.配置文件概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 ...
最新文章
- java中的异常及其处理
- 《Cisco IOS XR技术精要》一4.4 理解二级提交模型
- ThinkPHP+AJAX三级联动
- bat文件无法保存为ansi_数组矩阵和PNG保存为nii文件
- 在服务器上搭建基于yolo3 与crnn 实现中文自然场景文字检测及识别,GPU版本
- MSPA安装与生态源地提取
- Composer Player 属性设置
- 基于阿尔法贝塔剪枝算法的五子棋_C4.5算法剪枝2
- 线性代数及其应用:绪论
- Windows下搭建FTP服务,FileZilla Server
- 阿里云企业邮箱用smtp发送邮件失败解决
- C#使用itextsharp生成PDF文件含页脚页眉
- chrome离线小恐龙改造版
- OpenCV4.3 Java 编程入门:Core 组件中的数据结构与方法
- wo-27s管理员账户和密码_“无法使用内置管理员账户打开”应用
- 发送打印任务后不打印
- 小程序input组件type=“nickname“获取不到微信昵称的值,解决方法
- 42、PCF8563电子时钟实验
- unity打包xcode,在iOS11设备调试报错
- 7-40 奥运排行榜 (25 分)