自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 内核驱动操控IO口源码(pin17引脚)

根据博文:芯片手册导读,查看引脚17的相关寄存器得到引脚17位于寄存器GPFSEL1位数bit23-21        位于寄存器GPSET0位数bit17        位于寄存器GPCLR0位数bit17对比博文:内核驱动操控IO口源码(pin4引脚)修改声明等参数修改有关寄存器的代码#include <linux/fs.

2021-10-08 23:42:51 245

原创 内核驱动操控IO口源码(pin4引脚)

代码分析可查看博文:编写内核驱动操控IO口代码原理分析一、驱动代码:#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

2021-10-08 21:24:46 336

原创 树莓派学习笔记(十六)编写内核驱动操控IO口代码原理分析

驱动源码、测试源码可查看博文:内核驱动操控IO口源码1、驱动代码编写框架查看博文:基于框架编写驱动1.1 声明寄存器,并赋值为NULL volatile unsigned int* GPFSEL0 = NULL; volatile unsigned int* GPSET0 = NULL; volatile unsigned int* GPCLR0 = NULL;原因:寄存器地址是物理地址,需要映射为虚拟地址,故将具体地址放在init函数中去映射成虚拟地址,而不直接赋值volatile

2021-10-08 21:16:20 269

原创 树莓派学习笔记(十五)博通BCM2835芯片手册导读

树莓派3b的CPU型号为:BCM2835(ARM-cotexA53架构)CPU型号为2440、2410(ARM9架构)编写驱动需要电路图(作用通过电路图找到寄存器)、芯片手册树莓派官网:pinout.xyz/pinout 可查看引脚的寄存器一、第六章节(General Purpose I/O(GPIO)p89)共有54个引脚分为2组,每个引脚至少有2个可选功能有41个寄存器,每个寄存器有32位注意的是此处Address表示的是总线地址而非物理地址常用寄存器(GPFSELn、GPSE

2021-10-08 20:27:15 3704 1

原创 树莓派学习笔记(十四)地址总线、物理地址、虚拟地址

一、地址总线概念:属于一种电脑总线,是由CPU或有DMA能力的单元,用来沟通这些单元想要存取电脑内存元件/地方的实体位址。           通俗来说就是cpu可直接寻址的内存空间大小(例地址总线有32位,即可以访问2^32bit)现象:32位的win7系统,即使内存条为8G,但是系统只识别了3.8G;      &nbs

2021-10-08 17:54:09 330

原创 树莓派学习笔记(十三)基于框架编写驱动代码

一、代码分析:在内核中由于代码文件多,避免函数名重复,使用static将函数的作用域限制在该文件内内核的打印函数printk和printf类似file_operations结构体使用符号“ . ”指定参数,省去不需要的参数pin4_drv_init初始化函数:MKDEV根据主设备号、次设备号创建设备号register_chrdev 注册驱动,将驱动加入到内核驱动链表中class_create 创建设备类device_create 创建设备文件pin4_drv_exit

2021-10-08 17:48:36 218

原创 树莓派学习笔记(十二)Linux驱动认知及编译加载驱动

一、驱动认知:Linux下一切皆文件设备都拥有自己对应的驱动程序通过文件名、设备号去驱动链表中查找驱动设备号分为主设备号和次设备号     主设备号:用来区分不同种类的设备     次设备号:用来区分同一类型的多个设备驱动链表:管理所有设备的驱动添加:编写完驱动程序,加载到内核中查找:调用驱动程序,由用户空间调用函数open添加驱动:驱动插入链表的顺序由设备号检索需要设备名、设备

2021-10-08 17:35:27 572 1

原创 树莓派学习笔记(十一)Linux系统结构框图

一、Linux系统结构框图分为用户级、内核级、硬件级用户级的用户程序通过系统调用接口与内核进行交互内核级中的系统调用接口分为与文件子系统交互、与进程控制子系统交互内核级中的硬件控制来控制硬件级的硬件设备内核分为五大模块:进程调度模块、进程间通信模块、内存管理模块、文件系统模块、网络接口模块所有的模块都需要通过进程调度模块运行具体分析库函数为用户程序提供支配内核干活的接口虚拟文件系统(VFS)包含了系统调用接口,其为各种文件系统提供了一个通用的接口文件子系统:分配文件空间、控

2021-10-08 17:05:18 1457

原创 树莓派学习笔记(十)文件系统、虚拟文件系统

一、文件系统1. 什么是文件系统?文件系统就是操作系统用来明确存储设备上文件的方法和数据结构,即在存储设备上组织文件的方法。管理和存储文件信息的软件机构称为文件管理系统,简称为文件系统2. 文件系统(文件管理系统的方法)的种类有哪些?Windows :FAT、VFAT(FAT32)、NTFSLinux :EXT1/2/3/4Mac os :HFS… 树莓派查看文件系统的命令: df -T vfat : boot(bootloader, kernel) ext4

2021-10-08 16:51:27 468

原创 树莓派学习笔记(九)树莓派Linux内核开发

一、树莓派Linux源码配置1、概念:驱动代码的编译需要一个提前编译好的内核,想要编译内核就必须先配置配置的最终目标会生成 .config文件,该文件指导Makefile去把有用东西组织成内核厂家配备Linux内核源码,比如说买了树莓派,就会有树莓派linux内核源码    第一种方式:         使用厂家.config   

2021-09-30 11:32:06 577

原创 树莓派学习笔记(八)树莓派Linux内核开发准备工作及概念

一、下载所需文件交叉编译工具的下载安装及配置(可查看博文:学习笔记六)下载树莓派Linux内核下载地址:https://github.com/raspberrypi点击Linux,根据树莓派版本,下载相对应的版本(树莓派版本通过命令gpio -v查询)从共享文件夹中拷贝树莓派Linux内核并解压(可查看博文:设置共享文件夹)cp /mnt/hgfs/share/linux-rpi-4.14.y.zip ./ unzip linux-rpi-4.14.y.zip二、树莓派等芯片的启动过程

2021-09-30 11:01:05 197

原创 树莓派学习笔记(七)带wiringpi库的交叉编译、软硬链接

观看学习上官可编程陈立臣老师的树莓派视频,在其过程中所记录的学习笔记所用到的Linux命令: cp -rf 拷贝文件夹(r表示文件夹,f表示强制执行) ls -l 显示文件详细信息 grep gcc * -nir 在所有文件中查找gcc字段 *表示所有文件 n显示行号 i不区分大小写 r递归查找一、 带wiringPi库的交叉编译如何进行1、正常我们先要交叉编译wiringPi库,编译出的库适合树莓派,这时候交叉编译可执行程序,链接库的格式也是正确的。

2021-09-29 21:35:39 306

原创 VMware安装Ubuntu18.04版本

一、下载及安装1、下载所需镜像文件下载网址:https://releases.ubuntu.com/18.04.6/2、点击“创建新的虚拟机” — 选择“自定义” —点击 “下一步” — 默认设置 —点击“下一步”3、选择“安装程序光盘映像文件” — 浏览选择已下载的镜像文件 — 点击“下一步”4、设置个人信息5、设置名称及安装位置(最好不要放在C盘,放在空间大的盘块)6、设置处理器及核数、分配内存(根据个人需求设置)7、设置网络类型,选择桥接模式8、接下来,一路选择默认

2021-09-27 22:55:32 255

原创 Ubuntu共享文件夹设置

1、首先将虚拟机关机2、右键开启设置 — 选项中的共享文件夹选择“总是启用” — 点击“添加” 或属性修改文件夹— 选择windows电脑上的文件夹作为共享文件夹 — 点击“确定”3、开启虚拟机,打开终端(快捷命令 ctrl+alt+t ),使用命令“cd /mnt/hgfs/share”进入共享文件夹(share为上面设置的名称,根据自己设置修改命令)...

2021-09-27 21:53:16 49067 2

原创 树莓派学习笔记(六)交叉编译概念及安装使用

一、交叉编译概念1、什么是交叉编译交叉编译:是在一个平台上生成另一个平台上的可执行代码。              我们在windows上面编写C51代码,并编译成可执行代码,如xx.hex,              &

2021-09-27 21:26:03 2627

原创 树莓派学习笔记(五)串口通信

一、串口通信概念1、串口通信用于多机通信2、串口通信属于全双工通信,即双方可以同时进行交流半双工通信,一次只允许一方进行通信3、树莓派进行串口通信要连接两根线TXD和RXD,连接时要相反连接(即树莓派的TXD要与通信方的RXD相连,RXD与TXD相连)4、进行串口通信时,数据格式(数据位、停止位、奇偶校验位)和波特率,通信双方要保持一致二、串口通信编程树莓派的串口是/dev/ttyAmA0(Linux一切皆文件)1、配置串口修改/boot/cmdline.txt文件,将“console

2021-09-26 23:02:14 3366

原创 树莓派学习笔记(四)外设开发编程使用

观看学习上官可编程陈立臣老师的树莓派视频,在其过程中所记录的学习笔记一、树莓派初始化函数#include <wiringPi.h>int wiringPiSetup (void) 返回执行状态,0表示成功,-1表示失败实例代码:#include <wiringPi.h>#include <stdio.h>int main(){ int i; i=wiringPiSetup(); printf("%d\n",i

2021-09-26 22:02:10 411

原创 树莓派学习笔记(三)外设开发编程概念

观看学习上官可编程陈立臣老师的树莓派视频,在其过程中所记录的学习笔记1. 树莓派外设开发接口文档参考WiringPi库接口详解:参考博文:https://www.cnblogs.com/lulipro/p/5992172.html2. 树莓派的接口IO口:input output 对主控来说 Input:人体,烟雾,火焰,震动等 Output:继电器,蜂鸣器PWM:电机调速,灯光调明亮度 语音识别模块,液晶屏(都有以下四种接口类型)串口uartIICSPIIIS其他特定硬

2021-09-25 23:17:17 1098

原创 语音模块YS_LDV7源码分析

一、文件结构main.c —— Main.c主函数、LED灯测试、单片机初始化、延时函数、                     中断函数(调用LDChip.c中的中断函数)、         

2021-09-25 22:45:50 596

原创 代码阅读器sourceInsight安装及使用

一、所需文件链接:百度网盘压缩包提取码:8q9s二、安装步骤1、运行exe文件----按步骤安装----到最后一步不要运行软件,点击finish2、将压缩包中“Decode”文件夹的sourceinsight4.exe放到安装路径下,替换掉原文件3、运行安装路径下的sourceinsight4.exe,选择Import a new license file,点击Next,选择压缩包中“Decode”文件夹中的“si4.pediy.lic”,即可安装成功三、配置及使用1、建立工程:在

2021-09-25 20:45:16 571

原创 Navicat安装手册

安装过程较为简单,只需修改安装位置,其他默认即可重点在于破解软件的使用一、所需文件:链接:https://pan.baidu.com/s/1k1K8i_6KBNDkDjJOywOpaw提取码:8q9s二、安装步骤:1、解压安装包——运行exe文件2、默认设置下一步——直到选择安装位置3、点击“浏览”,建议存放在除C盘外的盘块,点击“下一步”4、默认配置到结束安装三、破解步骤1、运行“PathNavicat.exe”文件2、在弹出的文件框中,选择安装步骤第5步中的文件存放路径

2021-09-25 16:50:35 672

原创 Mysql-5.7.17安装手册

一、所需文件下载链接:https://downloads.mysql.com/archives/installer/下拉框选择5.7.17.msi二、安装步骤1、双击打开msi文件,选择第二个选项,点击“Next”备注:Developer Default:安装所有 MySQL 数据库需要的产品Server only:仅仅使用 MySQL 数据库的服务器Client only:仅仅使用 MySQL 数据库的客户端Full:安装所有包含 MySQL 数据库的产品Custom:手动选择需要安装

2021-09-25 15:55:29 225

原创 Idea安装手册

一、所需文件官方下载:https://www.jetbrains.com/idea/download/#section=windows二、安装步骤1、双击运行exe,点击“Next”2、点击“Browse”选择安装位置,点击“Next”3、选择64位(根据自己电脑类型),创建桌面快捷方式4、默认设置,点击“Install”5、点击“finish”,完成安装6、打勾,并点击“Continue”7、点击“Donot Send”8、选择“Evaluate for free”,再点

2021-09-25 15:44:43 118

原创 Jdk1.8.0_111安装手册

一、所需文件链接: 百度网盘jdk1.8.0_111文件提取码:8q9s二、安装步骤1、双击上图红框,点击“下一步”2、选择jdk安装位置,点击“下一步”3、点击“更改”,更改jre安装路径3、最好在安装文件位置下新建jre文件夹,命名如图4、点击“下一步”,进行安装三、设置系统环境变量1、点击“此电脑”中的属性,再点击“高级系统设置”2、点击“环境变量”2、新建环境变量,变量名为JAVA_HOME,变量值为jdk安装路径3、在环境变量中找到Path变量,新建添加

2021-09-25 15:33:11 2008

原创 树莓派学习笔记(二)Linux静态动态库

1.分文件编程 分模块的编程思想 a.功能责任划分 b.方便调试 c.主程序简洁2.函数库概念    函数库可以分为:静态函数库、共享函数库、动态加载库;    共享函数库和动态加载库实际上是同一个    Linux中称为共享函数库,以so为后缀,    Windows中称为动态加载库,以dll为后缀 &nbsp

2021-09-25 11:42:18 200

原创 树莓派学习笔记(一)树莓派刷机及登录

树莓派学习笔记(一)树莓派刷机及登录1.树莓派刷机SD卡、读卡器软件:固件包:下载并运行Win32DiskImage,选择SD卡所在盘及固件包进行刷机2.树莓派登录2.1 HDMI视频线连接到显示器2.2 串口登录2.2.1 修改配置文件默认情况,树莓派的串口和蓝牙连接;需要断开蓝牙连接,将该串口用来数据通信将SD卡插入读卡器中,打开“config.txt”,将“dtoverlay=pi3-miniuart-bt”添加到最后一行作用解除蓝牙对串口的占用打开“cmdline.txt

2021-09-25 00:43:28 357

原创 基于Wemos D1开发板的智能垃圾桶

基于Wemos D1开发板的智能垃圾桶 师承上官可编程陈立臣目录基于Wemos D1开发板的智能垃圾桶前言一、软件、硬件说明1、Arduino2、Wemos D1开发板3、HC-SR04超声波测距模块4、SG90舵机5、蜂鸣器(低电平触发)二、具体代码1.Arduino基本函数2.蜂鸣器  2.1 调用函数  2.2 实例3.Wemos串口通信  3.1 调用函数  3.2 实例  3.3 串口通信与蜂鸣器相结合4.HC-SR04超声波测距模块  4.1 原理  4.2 调用函数  4.3 实例(包

2021-04-17 16:18:53 614

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除