微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > why?s3c2440中的spi驱动程序读取的数据都是0xff

why?s3c2440中的spi驱动程序读取的数据都是0xff

时间:10-02 整理:3721RD 点击:

在测试程序中调用的是linux2.6中自带的transfer函数:
static void transfer(int fd)
{
int ret;
uint8_t tx[] = {
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  0x40, 0x00, 0x00, 0x00, 0x00, 0x95,
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  0xDE, 0xAD, 0xBE, 0xEF, 0xBA, 0xAD,
  0xF0, 0x0D,
};
uint8_t rx[ARRAY_SIZE(tx)] = {0, };
struct spi_ioc_transfer tr = {
  .tx_buf = (unsigned long)tx,
  .rx_buf = (unsigned long)rx,
  .len = ARRAY_SIZE(tx),
  .delay_usecs = delay,
  .speed_hz = speed,
  .bits_per_word = bits,
};
ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr);
if (ret == 1)
  pabort("can't send spi message");
for (ret = 0; ret < ARRAY_SIZE(tx); ret++) {
  if (!(ret % 6))
   puts("");
  printf("%.2X ", rx[ret]);
}
puts("");
}
在这里我调用这个函数循环的传一个地址,然后再传一个数据。
当我短接mosi和miso时,数据返回正常,但是一旦接上外设,返回的数据都是0xff。
求高手解答!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top