找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2033|回復(fù): 3
收起左側(cè)

最近在自學(xué)CAN總線,有些關(guān)于SJA1000寄存器配置的問題,請高手指教

[復(fù)制鏈接]
ID:53813 發(fā)表于 2022-11-11 16:14 | 顯示全部樓層 |閱讀模式
網(wǎng)上流行的程序如下
#include  "stdio.h"
#include  "string.h"
#include  "intrins.h"
//#include "AT89X51.H"
#include "reg52.h"
//定義SJA1000的基址
#define SJA_BaseAdr  0X7F00
// 控制寄存器
#define         REG_MODE          SJA_BaseAdr+0x00       //內(nèi)部控制寄存器
...
#define         REG_RXERR         SJA_BaseAdr+0x0E         //接收錯誤計數(shù)器
#define         REG_TXERR         SJA_BaseAdr+0x0F         //發(fā)送錯誤計數(shù)器
#define         REG_ACR1          SJA_BaseAdr+0x10       //驗收代碼寄存器
#define         REG_ACR2          SJA_BaseAdr+0x11       //驗收代碼寄存器
...
#define         REG_AMR3          SJA_BaseAdr+0x16       //驗收屏蔽寄存器
#define         REG_AMR4          SJA_BaseAdr+0x17       //驗收屏蔽寄存器
// 發(fā)送緩沖區(qū)寄存器
#define         REG_TXD_FID       SJA_BaseAdr+0x10         //發(fā)送緩沖區(qū)1
#define         REG_TXD_ID1       SJA_BaseAdr+0x11         //發(fā)送緩沖區(qū)2
#define         REG_TXD_ID2       SJA_BaseAdr+0x12         //發(fā)送緩沖區(qū)3
#define         REG_TXD_ID3       SJA_BaseAdr+0x13         //發(fā)送緩沖區(qū)4
#define         REG_TXD_ID4       SJA_BaseAdr+0x14         //發(fā)送緩沖區(qū)5
#define         REG_TXBuffer1     SJA_BaseAdr+0x15         //發(fā)送緩沖區(qū)6
...
#define         REG_TXBuffer8     SJA_BaseAdr+0x1C         //發(fā)送緩沖區(qū)13
// 接收緩沖區(qū)寄存器
#define         REG_RXD_FID       SJA_BaseAdr+0x10         //接收緩沖區(qū)1
#define         REG_RXD_ID1       SJA_BaseAdr+0x11         //接收緩沖區(qū)2
#define         REG_RXD_ID2       SJA_BaseAdr+0x12         //接收緩沖區(qū)3
#define         REG_RXD_ID3       SJA_BaseAdr+0x13         //接收緩沖區(qū)4
....
#define         REG_RXCOUNT       SJA_BaseAdr+0x1D         //RX報文計數(shù)器
#define         REG_RBSA          SJA_BaseAdr+0x1E         //接收緩沖區(qū)起始地址
#define         REG_CDR           SJA_BaseAdr+0x1F         //時鐘分頻寄存器

如上,
  SJA_BaseAdr+0x10  在上面設(shè)置中,即當(dāng)驗收代碼寄存器,又當(dāng) 接收緩沖區(qū),還可以是發(fā)送緩沖區(qū)

這么設(shè)置不會沖突嗎?
為啥可以這樣設(shè)置?
我買的書里他是這么設(shè)置的,直接按照順序一路下來
有點迷糊,是不是兩個都可以?
51hei圖片_20221111161341.png
51hei圖片_20221111161352.png
回復(fù)

使用道具 舉報

ID:195496 發(fā)表于 2022-11-12 08:22 | 顯示全部樓層
收發(fā)是同一個地址,但是兩個緩沖區(qū),你讀與寫操作的是兩個不同的緩沖區(qū),這個跟串口通信的緩沖區(qū)是一樣的,讀與寫是同一地址但是兩個不同的緩沖區(qū),一個你只能讀,另一個你只能寫
回復(fù)

使用道具 舉報

ID:308903 發(fā)表于 2022-11-17 08:13 | 顯示全部樓層
大漠落日 發(fā)表于 2022-11-12 08:22
收發(fā)是同一個地址,但是兩個緩沖區(qū),你讀與寫操作的是兩個不同的緩沖區(qū),這個跟串口通信的緩沖區(qū)是一樣的, ...

學(xué)習(xí)了
回復(fù)

使用道具 舉報

ID:283207 發(fā)表于 2023-1-9 15:17 | 顯示全部樓層
大漠落日 發(fā)表于 2022-11-12 08:22
收發(fā)是同一個地址,但是兩個緩沖區(qū),你讀與寫操作的是兩個不同的緩沖區(qū),這個跟串口通信的緩沖區(qū)是一樣的, ...

學(xué)習(xí)了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表