天最

天最

1个粉丝

52

问答

0

专栏

2

资料

天最  发布于  2020-03-09 16:11:27
采纳率 0%
52个问答
2382

海思hi3516a连接一个spi接口模组

 
本帖最后由 天最 于 2020-3-9 16:28 编辑

各位大佬,目前也是要开发一个spi接口模组,没有什么设备地址,寄存器地址的,,就是发送协议,类似11 22 00 33 00 44 00 55 00 66这样操作的。。。是不是只用open "/dev/spidev0.0"  然后  read write 等就可以了?????是不是不用写spi驱动???
我来回答
回答2个
时间排序
认可量排序

天最

1个粉丝

52

问答

0

专栏

2

资料

天最 2020-03-09 17:05:34
认可0
int sensor_read_register(unsigned int addr,unsigned char *data)
{
        int fd = -1;
        int ret = 0;
        unsigned int value;
        struct spi_ioc_transfer mesg[1];
        unsigned char tx_buf[4];
        unsigned char rx_buf[4];
        char file_name[] = "/dev/spidev0.0";
        fd = open(file_name, 0);
        if (fd < 0)
        {
        return -1;
        }
        memset(tx_buf, 0, sizeof tx_buf);
        memset(rx_buf, 0, sizeof rx_buf);
        tx_buf[0] = (addr & 0xff00) >> 8;
        tx_buf[0] |= 0x80;
        tx_buf[1] = addr & 0xff;
        tx_buf[2] = 0;
        memset(mesg, 0, sizeof mesg);
        mesg[0].tx_buf = (__u32)tx_buf;
        mesg[0].rx_buf = (__u32)rx_buf;
        mesg[0].len = 3;
        mesg[0].speed_hz = 2000000;
        mesg[0].bits_per_word = 8;
        mesg[0].cs_change = 1;
        value = SPI_MODE_3 | SPI_LSB_FIRST;
        ret = ioctl(fd, SPI_IOC_WR_MODE, &value);
        if (ret < 0) {
        close(fd);
        return -1;
        }
        ret = ioctl(fd, SPI_IOC_MESSAGE(1), mesg);
        if (ret != mesg[0].len) {
        close(fd);
        return -1;
        }
        *data = rx_buf[2];
        close(fd);
        return 0;
}

如果使用ioctl是不是里面tx_buf里面的addr不用填充??还是说将协议数据填充进去???

sourse

0个粉丝

0

问答

0

专栏

0

资料

sourse 2020-04-11 21:12:35
认可0
我觉得必须有一个驱动挂载到了系统上才会有/dev/spidev0.0这个标识符出现吧,不然是不能open的,不知说的对不对
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区