mcp2515的问题

klangkang 2010-07-10 11:39:02
在读取mcp2515的寄存器和接受数据缓冲区的时候,为什么在写入地址之后还要往里面写入一个0xff呢?
uint8_t mcp2515_read_register(uint8_t adress)
{
uint8_t data;

/* CS low */
PORTB &= ~(1<<SPI_CS);

spi_putc(SPI_READ);

spi_putc(adress);

data = spi_putc(0xff);??

/* CS high */
PORTB |= (1<<SPI_CS);

return data;
}

uint8_t mcp2515_read_rx_buffer(uint8_t adress)
{
uint8_t data;

/* 躡erpr黤en ob die Adresse richtig ist */
if (adress & 0xF9)
return 0;

/* CS low */
PORTB &= ~(1<<SPI_CS);

spi_putc(SPI_READ_RX | adress);

data = spi_putc(0xff);??

/* CS high */
PORTB |= (1<<SPI_CS);

return data;
...全文
290 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
klangkang 2010-07-15
  • 打赏
  • 举报
回复
谢谢各位大虾
宇帆 2010-07-12
  • 打赏
  • 举报
回复
好像是 作为从机的时候,要发送ff
fanxu007 2010-07-12
  • 打赏
  • 举报
回复
学习一下
schlafenhamster 2010-07-12
  • 打赏
  • 举报
回复
almost !
klangkang 2010-07-11
  • 打赏
  • 举报
回复
谢谢?是不是几乎所有的通过SPI总线控制的都是需要发送一个字节的数据才能读取数据?
fpcc 2010-07-10
  • 打赏
  • 举报
回复
这个,晕,你看DATASHEET里怎么写的,这个东西有问为什么的么。
wowocpp 2010-07-10
  • 打赏
  • 举报
回复
SPI总线读写方式有关
schlafenhamster 2010-07-10
  • 打赏
  • 举报
回复
data = spi_putc(0xff);//发送一个无用的东西。
SPI总线有时钟时2边(主从)移位寄存器 都在移位,读数据时要发送一个垃圾数据(FF)
klangkang 2010-07-10
  • 打赏
  • 举报
回复
datasheet里面就没有看到啊!是没有看到才问的好不好!

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧