OrangePi3 LTS 驱动开发-spi通信(一)

news/2024/11/14 15:31:49/

OrangePi3 LTS 驱动开发-读写W25Q32
kernel版本:orange-pi-5.10-media
5.1x版本,spi1默认是关闭的,需要在orangepiEnv.txt中添加overlays=spi-spidev1字样开启spi1。如果不添加,默认设置为开,需要更改dts中的配置。
1、修改sun50i-h6-orangepi-3-lts.dts文件

aliases {serial0 = &uart0;serial1 = &uart1;serial3 = &uart3;serial9 = &r_uart;i2c0 = &i2c0;spi1 = &spi1;ethernet0 = &emac;};&spi1{status = "okay";#address-cells = <1>;#size-cells = <0>;spidev@0 {compatible = "spidev";reg = <0x0>;spi-max-frequency = <10000000>;status = "okay";};
};

其实这个spidev的节点是内核给应用层的一种无驱动设备用的一种形式,跟iic一样,注册后在生成/dev/spidev1.0 这么个设备节点。WiringPi库中的spi操作,就是跟这个节点交互。
编译dts导入后会查看有无此节点。

手头正好有个w25q32的spi flash,接上线后用wiringPi验证下是否能正常通讯。

App代码如下,就获取一下spi的设备id,如果能返回,说明线没接错,spi通讯正常

#include "stdio.h"
#include "wiringPi.h"
#include "wiringPiSPI.h"
#include <string.h>
typedef unsigned char uint8_t;#define CMD_READ_UNIQUE_ID    0x4B
#define CMD_JEDEC_ID          0x9fvoid spcDump(char *id,int rc, uint8_t *data,int len) {int i;printf("[%s] = %d\n",id,rc);for(i=0;i<len;i++) {printf("%0x ",data[i]);if ( (i % 10) == 9) printf("\n");}printf("\n");
}void W25Q64_readManufacturer(int fd,uint8_t* d) {uint8_t data[4];int rc;memset(data,0,sizeof(data));data[0] = CMD_JEDEC_ID;rc = wiringPiSPIDataRW (fd,data,sizeof(data));spcDump("readManufacturer",rc,data,4);memcpy(d,&data[1],3);
}int main(int argc,char *argv[])
{int fd = 0;char data[4] = {0}fd = wiringPiSPISetup(1,1000 * 1000);W25Q64_readManufacturer(fd,data);return 0;
}

在这里插入图片描述


http://www.ppmy.cn/news/345175.html

相关文章

OrangePi3 LTS 驱动开发-i2c通信(一)

OrangePi3 LTS 驱动开发-at24c02适配 kernel版本&#xff1a;orange-pi-5.10-media 5.1x版本&#xff0c;i2c0默认是关闭的&#xff0c;需要在orangepiEnv.txt中添加overlaysi2c0字样开启i2c0。如果不添加&#xff0c;默认设置为开&#xff0c;需要更改dts中的配置。 1、修改s…

AVC的三种规格

AVC其实就是H.264标准&#xff0c;是由ITU-T和ISO/IEC组成的联合视频组&#xff08;JVT&#xff0c;Joint Video Team&#xff09;一起开发的&#xff0c;ITU-T给这个标准命名为H.264&#xff08;以前叫做H.26L&#xff09;&#xff0c;而ISO/IEC称它为MPEG-4 高级视频编码&…

华为手机pc模式机型_哪些手机型号外接便携显示器能实现PC电脑模式

手机支持PC模式&#xff0c;这个不同于一般的手机投屏功能&#xff0c;基本上实现了手机可以当电脑主机的功能。很多人都要疑问&#xff0c;自己的手机是否支持手机PC模式呢&#xff1f;奥斯曼小编为大家整理了一些支持PC模式手机型号&#xff0c;快来看看你的手机是否有第二系…

【中国传媒大学】史上最全的《电视原理》笔记

第1章电视传像基础 第2章三基色原理与计色系统 第3章彩色电视摄像原理 第4章 彩色电视信号 第6章电视信号数字化基础 第7章 数字视音频压缩编码 第8章-MPEG2系统复用ing-ys 第9章-数字电视信道编码技术-ys 第一章 电视传像基础 视敏特性 实验表明&#xff0c;在明亮环境中&am…

FFmpeg再学习 -- 将 jpeg 转成 mp4

参看&#xff1a;wiki -- ffmpeg 上一篇已讲将了 ffmpeg 的安装说明&#xff0c;接一下来讲一下我们要实现的功能&#xff0c;将 jpeg 转成 mp4. 参看&#xff1a;使用ffmpeg将jpeg转成mp4 参看&#xff1a;FFmpeg and H.264 Encoding Guide 本版本使用的是 ffmpeg-3.3.1 …

全志芯片bsp命名规则

在linux bsp中&#xff0c;allwinner平台统一命名为“sunxi”。即&#xff1a;linux bsp中的“sunxi”可以理解为是allwinner的代称。 如linux/arch/arm目录下的machine命名为“mach-sunxi”&#xff1b; 如linux/driver/video目录下显示驱动命名为“sunxi”&#xff1b; 不同…

canvas像素点获取 —— 拾色器、放大器

原文地址 前言 最近在学习canvas&#xff0c;然后照葫芦画瓢简单实现了几个小demo&#xff0c;跟大家一块学习一下。 主要内容 两个方法&#xff1a;drawImage、getImageData前端图片预览、跨域图片问题 两个方法&#xff1a;drawImage、getImageData drawImage 用法&#xff1…

香橙派Orange Pi 3开发板在Armbian系统下使用SPI的方法

香橙派Orange Pi 3开发板&#xff0c;采用全志H6系统级芯片&#xff0c;同时拥有1GB或2GB LPDDR3 内存&#xff0c;可选8GB EMMC Flash。集成了千兆网&#xff0c;MIC&#xff0c;HDMI等功能接口&#xff0c;拥有4个 USB 3.0接口&#xff0c;另外&#xff0c;板子提供了26pin接…