|
|
| | -文章搜索 - 最新文章 - | |
单片机CAN寄存器初始化函数 |
| 发布时间:2005年5月20日 点击次数:2795 |
| 来源: 作者: |
/****************************************** 单片机CAN寄存器初始化函数 ******************************************/ void P87C591_CANRegInit_Config() { REG_CANADR = REG_CAN_MOD; //指针指向CAN寄存器MOD REG_CANDAT = 0x01; //置复位请求 P1M2 = P1M2|0xC2; //将CAN总线TXDC置成推挽模式 REG_CANADR = REG_CAN_IER; REG_CANDAT = 0x83; //开CAN中断 REG_CANADR = REG_CAN_BTR0; //10K波特率 FOR 12M(CAN) REG_CANDAT = 0xEF; REG_CANADR = REG_CAN_BTR1; REG_CANDAT = 0xFF; REG_CANADR = REG_CAN_ACF1_ACR0; //设置验收代码滤波器(接收标志:0xAC) REG_CANDAT = 0xAC; REG_CANDAT = 0x00; REG_CANDAT = 0x00; REG_CANADR = REG_CAN_ACF1_AMR0; //设置验收代码屏蔽器 REG_CANDAT = 0x00; REG_CANDAT = 0xFF; REG_CANDAT = 0xFF; REG_CANDAT = 0xFF; REG_CANADR = REG_CAN_ACFMOD; //设置验收滤波器工作模式(单滤波器,接收扩展帧) REG_CANDAT = 0x33; REG_CANADR = REG_CAN_ACFPRIO; //设置所有滤波器优先级为高 REG_CANDAT = 0xFF; REG_CANADR = REG_CAN_ACFEN; //使能验收滤波器1 REG_CANDAT = 0x01; REG_CANADR = REG_CAN_MOD; //退出复位使能 REG_CANDAT = 0x00; } /************************************************* CAN中断处理函数 *************************************************/ void ECAN_int_service(void) interrupt 13 { REG_CANADR = REG_CAN_IR; InterruptRegCopy = REG_CANDAT; //读出CAN中断状态 CANADR_save = REG_CANADR; if((InterruptRegCopy & 0x01) == 0x01) { //接收中断 } if((InterruptRegCopy & 0x02) == 0x02) { //发送中断处理 } if((InterruptRegCopy & 0x80) == 0x80) { //总线出错处理 } REG_CANADR = CANADR_save; } 你试试先~~ 都是跑通了的 初始化波特率写入的值那里我不太肯定,忘了,你自己查一下 |
|
|
|
|
[技术文章] 相关文章: 跌幅趋缓 近期被动元件不显淡简介:
深圳现货行情显示,时至第二季度中旬,被动元件市场需求相较一季度并没有太大变化。受惠终端需求持续增温,以及供给面力稍显吃紧,目前深圳现货市场被动元件跌幅已呈趋缓迹象。 据悉,被动元件在历经2000年的产业大幅扩产造成供需失衡及价格崩跌后,因各厂不再盲目扩产,目前产业已经面临产能略显吃紧的压力。受近期库存消化速度较快影响,现货行情显示,MLCC以及芯片电阻(R-Chip)等产品价格下跌幅度都较第一季度趋缓。业者预估,被动元件第二季度价格跌幅将小于第一季度的4%-5%。 原本预期,被动元件经...... 飞利浦照明研发中心将迁中国
全球NOR闪存05年销售收入将增长7%
LCD显示器一季度出货较同期增五成
微控制器时钟 — 选择RC振荡器、晶振还是谐振槽路?
用单片机实现通用存贮器IC卡的读写
常见通讯协议介绍
全球LED产业高度依赖手机业 2005年仅增15%
EMV芯片卡年底登陆内地
SIA:税收而非劳动成本导致美国IC制造外流 |
|
|
|