博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SPI (三) linux SPI
阅读量:4285 次
发布时间:2019-05-27

本文共 3205 字,大约阅读时间需要 10 分钟。

spi platform drvier 匹配 _probe 中devm_spi_register_master    spi_register_master        of_spi_register_master        of_register_spi_devices            of_register_spi_device                spi_add_device                    device_add
spi_add_driver
  • dts
必须至少有以下三种属性        compatible = "nanopi,spidev"; /* 此属性值用于与spi设备驱动匹配 */        reg = <0>;  /*spi设备是没有设备地址的, 这里是指使用spi控制器的cs-gpios里的第几个片选io */        spi-max-frequency = <10000000>; /* 指定spi设备的最大工作时钟 */
  • 驱动文件,匹配方式
spi.cdevm_spi_register_master  // 注册 spi master	spi_register_master		of_register_spi_devices // 注册下面的多个设备			of_register_spi_device // 注册下面的一个设备				of_property_read_u32(nc, "reg", &value); // 解析设备节点中的 reg 节点.				//spi->chip_select = value;				of_property_read_u32(nc, "spi-max-frequency", &value); // 解析设备节点中的 spi-max-frequency 节点.				spi_add_device(spi);					if (master->cs_gpios)						spi->cs_gpio = master->cs_gpios[spi->chip_select];
spi master 怎么用 csmaster->transfer_one_message = atmel_spi_transfer_one_message;	cs_activate	atmel_spi_one_transfer(master, msg, xfer);		cs_activate			spi_writel(as, CSR0 + 4 * spi->chip_select, asd->csr);
  • spi 自己发数据
struct spi_device * spi_test;spi_probe(struct spi_device *spi)	spi_test = spi;                                                                                                                         void do_spi_test(int value){
struct spi_message msg; struct spi_transfer xfer; char tx_buf[4] = {
0}; // 每次为 4组 0xXX char rx_buf[4] = {
0}; int i = 0; memset(tx_buf, value, sizeof(tx_buf)); for(i = 0;i<100;i++){
// 100 次 /* Init */ spi_message_init(&msg); memset(&xfer, 0, sizeof(xfer)); spi_message_add_tail(&xfer, &msg); /* Setup */ msg.spi = spi_test; xfer.len = 4; xfer.tx_buf = tx_buf; xfer.rx_buf = rx_buf; spi_sync(msg.spi, &msg); } }

转载地址:http://taigi.baihongyu.com/

你可能感兴趣的文章
linux系统中查看己设置iptables规则
查看>>
一些库函数的使用注意事项
查看>>
IPv6地址自动配置中的有状态(stateful)和无状态(stateless)的区别
查看>>
阿里云 ACP 云安全 题库总结
查看>>
阿里云 ACP 云安全 题库 -- 数据库审计部分
查看>>
GC 回收机制
查看>>
探究 Android MVC、MVP、MVVM 的区别以及优缺点
查看>>
深入分析 Handler 内存泄露
查看>>
解决 windows 文件被占用的问题 -- The action can‘t be completed because the folder is open in another program
查看>>
Tencent/matrix错误:Cause: need sign apk but apksigner *\Sdk/build-tools/*/apksigner was not exist
查看>>
Android6.0运行时权限详解
查看>>
Android 开机启动过程
查看>>
View 的事件分发机制(一)
查看>>
Android 面试题整理(一)
查看>>
Android 项目中打印Log的优化
查看>>
Github 客户端安装失败解决办法
查看>>
android studio:###Error:Dependency :common:unspecified on project resource resolves to an APK
查看>>
异常统一处理的一些思路
查看>>
Android studio中快速try catch的快捷键
查看>>
Dialog 和 Toast
查看>>