欢迎加入技术交流QQ群(2000人):电力电子技术与新能源 905749978
高可靠新能源行业顶尖自媒体
在这里有电力电子、新能源干货、行业发展趋势分析、最新产品介绍、众多技术达人与您分享经验,欢迎关注微信公众号:电力电子技术与新能源(Micro_Grid),论坛:www.21micro-grid.com,建立的初衷就是为了技术交流,作为一个与产品打交道的技术人员,市场产品信息和行业技术动态也是必不可少的,希望大家不忘初心,怀有一颗敬畏之心,做出更好的产品!
电力电子技术与新能源论坛
www.21micro-grid.com
CRC错误:发送与接收的CRC值不同发生该错误; 格式错误:帧格式不合法发生该错误; 应答错误:发送节点在ACK阶段没有收到应答信息发生该错误; 位发送错误:发送节点在发送信息时发现总线电平与发送电平不符发生该错误; 位填充错误:通信线缆上违反通信规则时发生该错误。
#define REG_BASE_ADDR 0xA000 // 寄存器基址
unsigned char *SJA_CS_Point = (unsigned char *) REG_BASE_ADDR ;
// 写SJA1000寄存器
void WriteSJAReg(unsigned char RegAddr, unsigned char Value)
{
*(SJA_CS_Point + RegAddr) = Value;
return;
}
// 读SJA1000寄存器
unsigned char ReadSJAReg(unsigned char RegAddr)
{
return (*(SJA_CS_Point + RegAddr));
}
……
for (i=0; i{
WriteSJAReg(RegAdr + i, ValueBuf[i]);
}
……
……
for (i=0; i{
ReadSJAReg(RegAdr + i, ValueBuf[i]);
}
……
#ifndef __CONFIG_H__ // 防止头文件被重复包含
#define __CONFIG_H__
#include <8051.h> // 包含80C51寄存器定义头文件
#include "SJA1000REG.h" // 包含SJA1000寄存器定义头文件
// 定义取字节运算
#define LOW_BYTE(x) (unsigned char)(x)
#define HIGH_BYTE(x) (unsigned char)((unsigned int)(x) >> 8)
// 定义振荡器时钟和处理器时钟频率(用户可以根据实际情况作出调整)
#define OSCCLK 11059200UL
// 宏定义MCU的时钟频率
#define CPUCLK (OSCCLK / 12)
#endif // __CONFIG_H__
char SetSJASendCmd(unsigned char cmd)
{
unsigned char ret;
switch (cmd)
{
default:
case 0:
ret = SetBitMask(REG_CAN_CMR, TR_BIT); //正常发送
break;
case 1:
ret = SetBitMask(REG_CAN_CMR, TR_BIT|AT_BIT); //单次发送
break;
case 2:
ret = SetBitMask(REG_CAN_CMR, TR_BIT|SRR_BIT);//自收自发
break;
case 0xff:
ret = SetBitMask(REG_CAN_CMR, AT_BIT);//终止发送
break;
}
return ret;
}
unsigned char SJA_CAN_Filter[8] =
{
// 定义验收滤波器的参数,接收所有帧
0x00, 0x00, 0x00, 0x00,
// ACR0~ACR3
0xff, 0xff, 0xff, 0xff
// AMR0~AMR3
};
unsigned char STD_SEND_BUFFER[11] =
{
// CAN 发送报文缓冲区
0x08, // 帧信息,标准数据帧,数据长度 = 8
0xEA, 0x60, // 帧ID = 0x753
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa // 帧数据
};
void main(void) // 主函数,程序入口
{
timerInit();// 初始化
D1 = 0;
SJA1000_RST = 1; // 硬件复位SJA1000
timerDelay(50); // 延时500ms
SJA1000_RST = 0;
SJA1000_Init(0x00, 0x14, SJA_CAN_Filter); // 初始化SJA1000,设置波特率为1Mbps
// 无限循环,main()函数不允许返回
for(;;)
{
SJASendData(STD_SEND_BUFFER, 0x0);
timerDelay(100); // 延时1000ms
}
}
文章首尾冠名广告正式招商,功率器件:IGBT,MOS,SiC,GaN,磁性器件,电源芯片,DSP,MCU,新能源厂家都可合作,有意者加微信号1768359031详谈。
说明:本文来源网络;文中观点仅供分享交流,不代表本公众号立场,转载请注明出处,如涉及版权等问题,请您告知,我们将及时处理。
电力电子技术与新能源通讯录:
Please clik the advertisement and exit
重点
如何下载《电力电子技术与新能源》板块内高清PDF电子书
点击文章底部阅读原文,访问电力电子技术与新能源论坛(www.21micro-grid.com)下载!
或者转发所要文章到朋友圈不分组不屏蔽,然后截图发给小编(微信:1413043922),小编审核后将文章发你!
推荐阅读:点击标题阅读
LLC_Calculator__Vector_Method_as_an_Application_of_the_Design
自己总结的电源板Layout的一些注意点
High_Frequency_Transformers_for_HighPower_Converters_Materials
华为电磁兼容性结构设计规范V2.0
Communication-less Coordinative Control of Paralleled Inverters
Soft Switching for SiC MOSFET Three-phase Power Conversion
Designing Compensators for Control of Switching Power Supplies
100KHZ 10KW Interleaved Boost Converter with full SiC MOSFET
华为-单板热设计培训教材
看完有收获?请分享给更多人
公告:
更多精彩点下方“阅读原文”!
点亮“在看”,小编工资涨1毛!