这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » STC32G12K128的CAN外设-----CAN相关寄存器

共2条 1/1 1 跳转至

STC32G12K128的CAN外设-----CAN相关寄存器

专家
2024-02-08 22:09:53   被打赏 50 分(兑奖)     打赏

STC32G12K128是国芯公司的32位单片机,该芯片的P0.0~P0.3口是可以被复用为CAN设备接口的。其中P0.0和P0.1构成CAN1,P0.2和P0.3构成CAN2。根据数据手册,STC32G 系列单片机内部集成两组独立的 CAN 总线功能单元,支持 CAN 2.0 协议,可以收到标准帧和扩展帧。

为了复用为CAN设备,需要设置P_SW1和P_SW3寄存器。如下表所示:

图片1.png

图片2.png

一、芯片中和CAN设备有关的寄存器如下:

图片3.png

1、辅助寄存器 2(AUXR2)

图片4.png

CANEN:CAN 总线使能控制位

    0:关闭 CAN 功能

    1:使能 CAN 功能

CAN2EN:CAN2 总线使能控制位

    0:关闭 CAN2 功能

    1:使能 CAN2 功能

CANSEL:CAN 总线选择

    0:选择第一组 CAN

    1:选择第二组 CAN

由于CAN1和CAN2的内部寄存器使用相同的地址。如果想区分访问的是CAN1的,还是CAN2的,就必须要使用CANSEL来指明。

2、CAN 总线中断控制寄存器(CANICR)

图片5.png

CANIE:CAN 总线中断使能控制位

    0:关闭 CAN 中断

    1:使能 CAN 中断

CANIF:CAN 总线中断请求标志位,需软件清零。

PCANH,PCANL:CAN 中断优先级控制位

图片6.png

CAN2IE:CAN2 总线中断使能控制位

    0:关闭 CAN2 中断

    1:使能 CAN2 中断

CAN2IF:CAN2 总线中断请求标志位,需软件清零。

PCAN2H,PCAN2L:CAN2 中断优先级控制位

图片7.png

3、CAN 总线地址寄存器(CANAR)

图片8.png

4、CAN 总线数据寄存器(CANDR)

图片9.png

对 CAN 内部功能寄存器进行读写均需要通过 CANAR 和 CANDR 进行间接访问

读 CAN 内部功能寄存器的方法:

    a、将 CAN 内部功能寄存器的地址写入 CAN 总线地址寄存器 CANAR

    b、读取 CAN 总线数据寄存器 CANDR

    例如:需要读取 CAN 内部功能寄存器 ISR 的值

        CANAR = 0x03; //将 ISR 的地址写入 CANAR

        dat = CANDR; //读取 CANDR 以获得 ISR 的值

写 CAN 内部功能寄存器的方法:

    a、将 CAN 内部功能寄存器的地址写入 CAN 总线地址寄存器 CANAR

    b、将待写入的值写入 CAN 总线数据寄存器 CANDR

    例如:需要将数据 0x5a 写入 CAN 内部功能寄存器 TXBUF0

        CANAR = 0x08; //将 TXBUF0 的地址写入 CANAR

        CANDR = 0x5a; //将待写入的值 0x5a 写入 CANDR





关键词: 菜鸟学单片机          STC32G12K128     CAN外    

院士
2024-02-09 17:17:23     打赏
2楼

学习并收藏了,谢谢分享。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]