![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树莓派开发
weixin_48080013
这个作者很懒,什么都没留下…
展开
-
树莓派博通BCM2835芯片手册导读以及IO口驱动代码调试和测试
芯片手册下载:百度网盘:https://pan.baidu.com/s/1hESG0ECH5xk-rv1V-1qM7g提取码:a9iy1.说明:GPFSEL0 GPIO Function Select 0: 功能选择:输入/输出GPSET0 GPIO Pin Output Set 0 : 输出0GPSET1 GPIO Pin Output Set 1 : 输出GPCLR0 GPIO Pin Output Clear 0: 清零(设置低电平)GPCLR1 GPIO Pin Ou原创 2020-12-03 22:30:52 · 626 阅读 · 0 评论 -
微机总线地址,物理地址,虚拟地址介绍
1.总线地址:地址总线 (Address Bus;又称:位址总线) 属于一种电脑总线 (一部份),是由CPU 或有DMA 能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元件/地方的实体位址。通俗点来讲就是CPU能够访问内存的范围表现的现象有:装了32位的win7的系统,明明内存条有8G,可是系统只能识别3.8G,装了64位的系统才能识别8G因为32位操作系统只能表示/访问:2^32 = 4294967296 bit = 4194304 Kb = 4096 Mb = 4 Gb查看树莓派原创 2020-12-01 19:52:28 · 477 阅读 · 0 评论 -
树莓派最简单的驱动代码以及驱动代码的编译和测试
1.驱动代码(pin4driver2.c)#include <linux/fs.h> //file_operations声明#include <linux/module.h> //module_init module_exit声明#include <linux/init.h> //__init __exit 宏定义声明#include <linux/device.h> //class devise声明#include &l原创 2020-11-30 22:37:36 · 585 阅读 · 1 评论 -
驱动认知
1.用户空间调用open()函数,如open("/dev/pin4",O_RDWR);会触发一次软中断,中断号为0x80,由用户态进入到内核态,0x80代表发生了一次系统调用,会来到sys_call()函数,sys_call()函数会调用虚拟文件系统里的sys_open()函数,sys_open()函数会去内核里的驱动链表根据设备名和设备号找到相关的驱动函数,去调用驱动函数里的open()函数,驱动函数里的open()函数去设置了IO口引脚的电平。2.驱动代码编写的作用:添加驱动:设备名,设备号(包.原创 2020-11-27 22:12:31 · 2285 阅读 · 0 评论 -
Linux内核架构介绍
函数库的作用:提供用户程序支配内核干活的接口上图可以看到三个层次:硬件级,内核级,用户级用户程序通过陷入完成由用户态到内核态的转换,系统调用接口作为用户级与内核级交互方式,分为2部分:与文件子系统的交互和与进程控制子系统的交互文件子系统管理文件,包括:分配文件空间,管理空闲时间,控制对文件的存取以及为用户检索数据进程控制子系统负责进程同步,进程间通信,进程调度和存储管理2.Linux内核主要包括5个模块:进程调度模块,内存管理模块,文件系统模块,进程间通信模块和网络接口模块。进程调...原创 2020-11-26 22:27:30 · 82 阅读 · 0 评论 -
树莓派Linux——文件系统认知
1.什么是文件系统?常规认知:根目录文件系统是操作系统用于明确存储设备组织文件的方法,以上说的方法就是文件管理 系统(其实是一个程序),简称文件系统2.文件系统(文件管理系统的方法)的种类有哪些?FAT,VFAT,EXT1/2/3/4,HFS,NTFS …树莓派查看文件系统的指令:df -Tvfat: boot(BootLoader,kernel)ext4: 根目录tmpfs:内存文件系统devtmpfs:3.什么是分区?windows(面向普通用户PC),目录即原创 2020-11-25 22:45:12 · 229 阅读 · 0 评论 -
树莓派-内核开发-说明 下载代码 编译 替换内核
为什么要进行树莓派的源码配置呢?驱动代码的编译需要一个提前编译好的内核编译内核就必须配置,配置的最终目标会生成 .config文件,该文件指导Makefile去把有用的东西组织成内核1.树莓派源码的获取,交叉编译等工具注意:树莓派里安装的系统镜像版本要和kernel代码对应。因为树莓派系统是在不断开发和升级的,如果你的树莓派使用的是某个时间的系统镜像,那么最好也使用当时的kernel代码。这里我使用得内核版本是4.14.98-v7+,那么我下载的也是4.14版本的代码编译交叉工具的获取原创 2020-11-24 21:45:32 · 322 阅读 · 0 评论 -
Linux内核源码树分析
1.Linux内核源码的获取第一种方法:打开链接:https://github.com/raspberrypi/下载具体使用的版本取决于树莓派的版本,指令: uname -r 可查看树莓派的版本,我的树莓派的版本是是4.14,所以我下载的是4.14的百度网盘:https://pan.baidu.com/s/1EhI0LFg4-jtKjVe1dwsL1g提取码:p4yw2.下载到虚拟机使用指令 unzip linux-rpi-4.14.y.zip 解压3.解压完进入到linux-rpi原创 2020-11-21 20:14:14 · 463 阅读 · 0 评论 -
Windows,嵌入式产品,安卓的启动过程
C51,STM32(裸机)—————— C直接操控底层寄存器实现相关业务,业务流程型的裸机代码。比如:遥控灯:用while(1)循环检测用户是否按下了某个按键,智能垃圾桶:WemosD1 LOOP循环相当于while(1)循环1.X86,Intel windows启动过程:电源—》BIOS—》windows内核—》C,D盘—》程序启动(如:QQ)2.嵌入式产品:树莓派,mini2440,mini6410,nanopi,海思,RK(瑞芯微)启动过程:电源—》BootLoader(引导操作系原创 2020-11-21 19:20:25 · 60 阅读 · 0 评论 -
Ubuntu18.04更改时区
1.输入命令sudo tzselect2.找到Asia,输入4,回车3.找到China,输入9,回车4.找到Beijing Time,输入1,回车5.选择Yes,输入1,回车6.更新设置sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime7.输入指令:date 查看是否更改成功...原创 2020-11-20 23:03:50 · 167 阅读 · 0 评论 -
Ubuntu18.04更新国内源
Ubuntu是国外的网站,我们下载东西会非常的慢,这时我们需要更新源,更新成国内的,下载速度就会变快1.输入命令修改sources.list文件,当然需要超级权限,所以要加sudo注意:如果第一次安装ubuntu18-04还没有更新vim的话,输入指令:sudo apt-get install vim 安装sudo vi /etc/apt/sources.list2.编辑/etc/apt/sources.list文件在下面随便挑选一个源下载就可以了,这里以阿里源为例3.更新源sudo ap原创 2020-11-20 22:15:03 · 1561 阅读 · 0 评论 -
Ubuntu18.04虚拟机搭建VMware版本
1.在安装Ubuntu之前,首先确认已安装好VMware虚拟机,注册成功,运行正常2.打开VMware创建一个虚拟机选择第二个:自定义(高级)©点击下一步3.安装Ubuntu18.04镜像百度网盘:https://pan.baidu.com/s/1mzR8S_1_q5pgcDmN4HPrqA提取码:q4iz选择第二个:安装程序光盘映像文件(iso)(M),指定镜像路径4.设置用户名和密码自己设置全名,用户名,密码(全名一般设置为虚拟机的名字,用户名一般设置为自己的名字)5.虚原创 2020-11-20 21:58:07 · 518 阅读 · 0 评论 -
软链接和硬链接
软链接:也称为符号链接,会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间1.概念:a. 软链接文件有类似于Windows的快捷方式。b. 在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。2.如何生成:ln -s 源文件 目标文件。比如: ln -s libwiringPi.so.2.50 libwiringPi.so说明: ln 是指令,-s是参数,libwiringPi.so.2.50是要被链接的文件名,libwiringP原创 2020-11-19 21:38:10 · 73 阅读 · 0 评论 -
把在ubuntu交叉编译的文件发送到树莓派上
1.检查交叉编译工具对不对输入指令:arm-linux-gnueabihf-gcc -v版本号是:4.8.32.如何把编译生成的可执行文件下载到开发板(树莓派)scp test pi@192.168.1.12:/home/pi说明:scp 文件名 开发板用户名@开发板地址:开发板的绝对路径...原创 2020-11-17 22:54:48 · 169 阅读 · 0 评论 -
树莓派(或者其他平台)交叉编译工具链的安装
百度网盘:https://pan.baidu.com/s/1zWuLTzR34uTKWNMXuAlezQ提取码:y4hv把下载下来的 tools-master.zip 放到Ubuntu上面去解压输入指令:unzip tools-master.zip解压完我们切换到 /tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin目录下arm-linux-gnueabihf-gcc 就是我们的交叉编原创 2020-11-17 22:29:27 · 275 阅读 · 1 评论 -
交叉编译
1.什么是交叉编译编译:是在一个平台上生成该平台上的可执行代码。交叉编译是在一个平台上生成另一个平台上的可执行代码。比如:<1> C51的交叉编译的发生在keil(集成环境上面)<2> 我们在windows上面编写C51的代码,并编译成可执行代码,如:xxx.hex,是在C51上面运行,不是在windows上面运行<3> 我们在ubuntu上面编写树莓派的代码,并编译成可执行代码,如:a.out,是在树莓派上面运行,不是在ubuntu Linux上面运行原创 2020-11-17 21:42:09 · 1169 阅读 · 0 评论 -
树莓派和电脑之间串口通信编程
1.使用串口通信时需包含头文件 #include<wiringSerial.h>2.注意:初次使用树莓派串口编程,需要配置修改cmdline.txt文件输入指令:sudo vi /boot/cmdline.txt删除:console=serial0,115200修改完记得:sudo reboot 重启树莓派3.相关的API<1> int serialOpen (char device, int baud);功能:打开并初始化串口参数说明:devic原创 2020-11-16 22:34:54 · 269 阅读 · 0 评论 -
串口通信协议概述
1.串口通信通常使用在多机通信中2.什么是全双工?什么是半双工?举个例子:有一男一女吵架,全双工就是这对男女可以互骂,男的骂女的同事时,女的也可以骂男的,半双工则是男的骂女的时候,女的闭嘴,只有等到男的骂完女的时候,女的才能骂男的。串口通信是全双工的。3.串口通信包括数据格式和波特率,数据格式包括数据位,停止位,奇偶校验位。...原创 2020-11-16 21:27:27 · 189 阅读 · 0 评论 -
超声波介绍及树莓派超声波模块测距
超声波硬件超声波的工作原理编程实现超声波测距函数介绍:1.void delayMicroseconds(unsigned int howLong);作用: 这个函数会导致程序执行暂停至少howLong微秒,由于Linux多任务的特性可能会更长。注意:最大的延时时间是一个32位无符号整数微秒或者大约71分钟。2.int digitalRead(int pin);作用:这个函数返回读取pin引脚所获得的值,这个值将会是HIGH或者LOW(也可以是1或0),取决于改pin的逻辑电平*原创 2020-11-14 22:20:22 · 176 阅读 · 0 评论 -
树莓派控制继电器组硬件控制开发
硬件准备1.树莓派2.继电器组硬件3.接线(IN1接树莓派的引脚26,IN2接树莓派的引脚27,IN3接树莓派的引脚28,IN4接树莓派的引脚29,GND接树莓派的0V引脚,VCC接树莓派的5V引脚)4.编写代码#include <wiringPi.h>#include <stdio.h>#include <string.h>#define SWI1 26#define SWI2 27#define SWI3 28#define原创 2020-11-14 21:18:22 · 121 阅读 · 0 评论 -
树莓派控制继电器
硬件准备1.树莓派2.继电器3.接线,(IN接树莓派的gpio引脚,比如接引脚7,GND接树莓派的0V引脚,VCC接树莓派的3.3V引脚)4.编写代码函数介绍:void pinMode(int pin,int mode);参数说明:pin:配置的引脚号mode:指定引脚的IO模式,可取得值有:INPUT,OUTPUT,PWM_OUTPUT,GPIO_CLOCK作用:配置引脚的IO模式2.void digitalWrite(int pin, int value);参原创 2020-11-13 22:32:37 · 271 阅读 · 0 评论 -
树莓派Wiringpi库介绍
1.wiringPi库是一个很棒的树莓派IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程等等。2.因为wiringPi库是特定平台,特定功能接口,所以在使用wiringPi库编程之前需要查看树莓派有没有安装wiringPi库,输入指令:gpio -v ,会输出wiringPi库的相关信息,表示已经安装了wiringPi库。否则需要自己安装。3.wiringPi库的安装进入 wiringPi的github (https://git.drogon.net/?p=wiringP原创 2020-11-13 21:36:18 · 178 阅读 · 0 评论 -
树莓派外设接口介绍
树莓派的接口IO口:input,output,对主控芯片来说input:人体传感器,烟雾传感器,火焰传感器,振动传感器等(不断地读取外界传递过来的状态)output:继电器,蜂鸣器等PWM:电机调速,灯光调明亮度串口uartIICSPIIIS其他特地硬件的接口:flash等其他芯片:Nanopi:LinuxS3c2410,S3c2440,S3c6410Tiny210,Tiny4412海思方案,瑞芯微方案,移远方案C51,STM32,Arduino,WemosD1:没有OS原创 2020-11-13 21:02:50 · 685 阅读 · 0 评论 -
Linux库引入之分文件编程
1.定义:把不同功能的函数封装到不同的文件中,一个.c文件和一个.h文件被称为一个模块。例如:当需要开发一个有两个函数function1和function2的C程序时,传统的做法是在main.c中分别编写main函数,function1函数和function2函数在main函数之前或开始部分声明两个功能函数,并调用。而如果以模块化的方式开发,则过程如下:创建两个.c文件,function1.c和function2.c分别在创建的这两个.c文件内定义需要的函数创建两个.h文件,注意:文件名要与创建原创 2020-11-11 22:45:52 · 60 阅读 · 0 评论 -
FileZilla的下载与安装
1.为什么要使用FileZilla进行文件互传呢?当我们使用一台主机的时候,既有Linux系统又有Windows系统的时候,我们可以拖拽,复制粘贴等多种方式,那如果是两台不同的主机呢?我们该如何进行文件的互传呢?这时候我们就可以使用FileZilla了2.下载百度网盘:https://pan.baidu.com/s/1cHJkKUxEa69TJCtckxhehA提取码:krl9**3.安装双击运行安装包,点击 I Agree**点击Next勾选Desktop Icon,然后点击N原创 2020-11-11 21:55:17 · 970 阅读 · 0 评论 -
树莓派登录方式----图形xrdp界面
1.登录树莓派2.安装 xrdp输入指令:sudo apt-get install xrdp3.windows10 打开远程桌面连接上面输入树莓派的IP地址(我的树莓派的IP地址是192.168.1.12)4.输入树莓派的账号密码默认是: pi raspberry原创 2020-11-11 21:27:54 · 187 阅读 · 0 评论 -
树莓派更新vim
树莓派更新新版vim默认的源是国外的,apt-get 安装的时候失败,我们更新成国内的源1.编辑sources.list输入指令:sudo nano /etc/apt/sources.list2.用#注释或直接删除原有的内容,新增两条:deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi#deb-src http://mirrors.tuna.tsinghua.ed原创 2020-11-10 23:18:33 · 231 阅读 · 0 评论 -
树莓派登录方式-----SSH登录
树莓派登录方式-----SSH登录1. 确保树莓派已经入网了2. 打开树莓派的ssh功能输入指令:sudo raspi-config选择Interfacing Options选择SSH选择Yes选择ok选择Finish3.打开MobaXterm点击Session4.点击SSH左边是树莓派的IP地址,右边是树莓派的账号5.输入账号密码6.此时表示成功以ssh的方式成功登录树莓派...原创 2020-11-10 22:53:00 · 476 阅读 · 0 评论 -
树莓派固定IP地址
树莓派固定IP地址1.登录树莓派,输入指令sudo nano /etc/rc.local在文件的末尾 exit 0 之前添加 ifconfig wlan0 + 你自己想固定的IP地址Ctrl + o 保存(按下之后会询问是否保存在文件 此时按下Enter)Ctrl + x 退出2.重启树莓派,查看IP是否和之前设置的一致此时代表设置成功...原创 2020-11-10 22:25:31 · 169 阅读 · 0 评论 -
配置树莓派接入网络
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf原创 2020-11-10 22:11:25 · 107 阅读 · 0 评论 -
树莓派登录方式---串口登录
树莓派登录方式—串口登录默认情况,树莓派的串口和蓝牙连接。想办法断开蓝牙连接,把串口用来数据通信,以下是具体步骤1.打开SD卡的磁盘修改系统配置,启用串口登录树莓派1.打开SD卡根目录的"config.txt"文件,将以下内容添加在最后并且保存。以防万一,请先备份好这个文件的原内容。dtoverlay=pi3-miniuart-bt这样就停止了蓝牙,解除了对串口的占用。2.然后再修改根目录的"cmdline.txt",将里面的内容全部替换成以下内容,以防万一,请先备份好这个文件的原内容。&g原创 2020-11-10 21:35:14 · 289 阅读 · 0 评论 -
MobaXterm的安装
MobaXterm的安装1.下载百度网盘:https://pan.baidu.com/s/1XP-LzHhtaY5HbkgquM9NiQ提取码:3yci2.解压并运行安装包3.点击next4.勾选,再点击Next5.选择安装路径 然后点击Next6.点击Install7.点击Finish 安装完毕MobaXterm有一个比较强的功能:左边和Windows只要用普通拖拽的方式进行文件的传输,非常方便!...原创 2020-11-10 21:23:00 · 100 阅读 · 0 评论 -
树莓派刷机
树莓派 刷机树莓派刷机刷机工具TF卡最好是8G与树莓派兼容1.刷机软件网盘:https://pan.baidu.com/s/1g76xuVJf7-kNyXudrXd_1Q提取码:54s32.下载软件解压 打开软件3.插入读卡器 选择要刷机的磁盘注意:刷机的磁盘一定要是TF卡千万别把电脑磁盘给刷机了刷机所需文件就是刚刚压缩包内的.img文件4.点击write 此时就开始刷机了,大概五分钟左右5.刷机完成点击OK6.退出 此时刷机完毕...原创 2020-11-09 21:32:25 · 108 阅读 · 0 评论