找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1924|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:53813 發(fā)表于 2022-11-11 16:14 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
網(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         //接收錯(cuò)誤計(jì)數(shù)器
#define         REG_TXERR         SJA_BaseAdr+0x0F         //發(fā)送錯(cuò)誤計(jì)數(shù)器
#define         REG_ACR1          SJA_BaseAdr+0x10       //驗(yàn)收代碼寄存器
#define         REG_ACR2          SJA_BaseAdr+0x11       //驗(yàn)收代碼寄存器
...
#define         REG_AMR3          SJA_BaseAdr+0x16       //驗(yàn)收屏蔽寄存器
#define         REG_AMR4          SJA_BaseAdr+0x17       //驗(yàn)收屏蔽寄存器
// 發(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報(bào)文計(jì)數(shù)器
#define         REG_RBSA          SJA_BaseAdr+0x1E         //接收緩沖區(qū)起始地址
#define         REG_CDR           SJA_BaseAdr+0x1F         //時(shí)鐘分頻寄存器

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

這么設(shè)置不會(huì)沖突嗎?
為啥可以這樣設(shè)置?
我買的書里他是這么設(shè)置的,直接按照順序一路下來(lái)
有點(diǎn)迷糊,是不是兩個(gè)都可以?

51hei圖片_20221111161341.png (242.03 KB, 下載次數(shù): 62)

51hei圖片_20221111161341.png

51hei圖片_20221111161352.png (286.1 KB, 下載次數(shù): 67)

51hei圖片_20221111161352.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

板凳
ID:308903 發(fā)表于 2022-11-17 08:13 | 只看該作者
大漠落日 發(fā)表于 2022-11-12 08:22
收發(fā)是同一個(gè)地址,但是兩個(gè)緩沖區(qū),你讀與寫操作的是兩個(gè)不同的緩沖區(qū),這個(gè)跟串口通信的緩沖區(qū)是一樣的, ...

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

使用道具 舉報(bào)

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

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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