阿尔法
文章平均质量分 80
学习llinux好平台,资料不错
冷月枫啊
暑假,我们一起努力!
展开
-
Qt----ICM20608
文章目录ICM20608一、资源简介二、应用接口ICM20608本章是 ICM20608 实验,本章与上一章类似,都是获取传感器的数据,ICM20608 是的一款六轴 MEMS 传感器,包括三轴加速度和三轴陀螺仪。因为本章与上一章类似,本章只提供获取ICM20608 的接口,不再重复设计界面程序。一、资源简介在正点原子 I.MX6ULL ALPHA 开发板底板上有一个 6 轴 MEMS 传感器,也就是在底板上晶振旁边的传感器,采用的是 spi 接口。(注意:I.MX6ULL MINI 开发板没有这个原创 2021-08-21 11:34:57 · 730 阅读 · 0 评论 -
Qt----AP3216C
文章目录AP3216C一、资源简介二、应用实例三、程序运行效果AP3216C本章是 AP3216C 实验,介绍如何在 Qt 应用上获取我们正点原子嵌入式 I.MX6ULL Linux开发板上的个三合一环境传感器的数据。注意,既然是从开发板上获取数据,那么需要使用开发板,在正点原子 I.MX6ULL ALPHA 开发板上有这个 AP3216C 传感器,MINI 底板没有这个AP3216C 传 感 器 。 不 过 程 序 是 没 有 传 感 器 的 情 况 下 也 是 可 以 运 行 的 , 可 以 在Wi原创 2021-08-21 10:41:07 · 1258 阅读 · 0 评论 -
Qt----USER-KEY
文章目录USER-KEY一、资源简介二、应用实例三、程序运行效果USER-KEY本章是按键实验,介绍如何在 Qt 应用上使用我们正点原子嵌入式 I.MX6ULL Linux 开发板上的按键。一、资源简介在正点原子的 I.MX6U 开发板,ALPHA 和 MINI Linux 开发板板载资源上有一个按键。如下图原理图(下图为 ALPHA 开发板的 KEY0 按键原理图)。二、应用实例想要监测这个 KEY0,首先我们正点原子的出厂内核已经默认将这个按键注册成了gpio-keys 类型设备,键值为原创 2021-08-21 10:25:13 · 364 阅读 · 0 评论 -
Qt----Serial Port
文章目录Serial Port一、资源简介二、应用实例三、程序运行效果Serial PortQt 提供了串口类,可以直接对串口访问。我们可以直接使用 Qt 的串口类编程即可,十分方便。Qt 串口类不仅在 Windows 能用,还能在 Linux 下用,虽然串口编程不是什么新鲜事儿,既然 Qt 提供了这方面的接口,我们就充分利用起来,这将会使我们的开发十分方便!其实 Qt也提供了相关的 Qt 串口的例子,我们也可以直接参考来编程,编者根据实际情况,化繁为易,直接写了个简单的例子给大家参考。一、资源简介原创 2021-08-21 08:51:00 · 5200 阅读 · 0 评论 -
Qt----Qt控制Beep
文章目录Qt控制Beep一、资源简介二、应用实例三、程序运行效果Qt控制Beep一、资源简介在正点原子的 I.MX6U 开发板,ALPHA 和 MINI Linux 开发板板载资源上有一个蜂鸣器(BEEP)。如下图原理图。此蜂鸣器直接接在一个 GPIO 上,并不是接在 PWM 上,管脚资源限制。所以我们的操作与上一小节是一样的(下图为 ALPHA 开发板的 BEEP 原理图)二、应用实例想要控制这个蜂鸣器(BEEP),首先我们正点原子的出厂内核已经默认将这个 LED 注册成了 gpio-leds原创 2021-08-21 06:50:35 · 1778 阅读 · 0 评论 -
Qt实验----控制LED
文章目录一、QT程序1. mainwindow.h2. mainwindow.cpp二、运行效果通过这个程序可以控制开发板的LED一、QT程序1. mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QPushButton>#include <QFile>/* * file name:led * date: 2021-08-20原创 2021-08-20 23:31:31 · 2695 阅读 · 1 评论 -
Qt----Qt控制LED
文章目录Qt控制LED一、资源简介二、应用实例三、程序运行效果Qt控制LED本章开始使用 Qt 应用到正点原子的嵌入式 I.MX6ULL 开发板上,凡事是先易后难,我们也是从最简单的点亮 LED 说起。介绍如何使用 Qt 知识应用到正点原子的嵌入式I.MX6ULL 开发板,亦可参考来修改到其他平台的嵌入式 Linux 开发板上一、资源简介在正点原子的 I.MX6U 开发板,ALPHA 和 MINI Linux 开发板板载资源上有一个 LED。如下图原理图(下图为 ALPHA 开发板的 LED 原理图原创 2021-08-20 20:39:27 · 3495 阅读 · 0 评论 -
linux 音频驱动实验
文章目录一、音频接口简介1. 为何需要音频编解码芯片2. WM8960简介3. I2S总线接口4. 6u SAI简介二、硬件原理图三、音频驱动使能1. 修改设备树1. Wm8906 i2c接口设备树2. 6u SAI接口设备树3. I.MX6ULL sound 节点2. 使能内核的WM89601. 取消 ALSA 模拟 OSS API2. 使能 I.MX6ULL 的 的 WM8960 驱动四、alsa-lib 和 alsa-utils移植1. alsa-lib移植2. alsa-utils移植五、声卡设置原创 2021-08-17 21:32:17 · 2601 阅读 · 0 评论 -
gt911多点触摸实验
文章目录一、设备树二、驱动程序三、测试四、编译进内核1. 拷贝文件2. 修改对应的 Makefile3. 编译运行4.测试一、设备树记得注释掉共用的引脚(有好几处)在pinctrl_tsc节点下添加: pinctrl_tsc: tscgrp { fsl,pins = < MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x10B0 /* TSC_INT*/ MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x10B0 /* TSC原创 2021-08-17 11:47:22 · 4728 阅读 · 2 评论 -
linux下多点电容触摸屏实验
文章目录一、linux下电容触摸屏驱动框架简介1. 多点触摸(MT)协议详解2. Type A触摸点信息上报时序3. Type B触摸点信息上报时序4. MT其他事件的使用5. 多点触摸所使用的API函数1. input_mt_init_slots 函数2. input_mt_slot 函数3. input_mt_report_slot_state 函数4. input_report_abs 函数5. input_mt_report_pointer_emulation 函数6. 多点电容触摸驱动框架1.原创 2021-08-16 21:39:37 · 3063 阅读 · 4 评论 -
linux UART(RS232/485)驱动实验
文章目录一、linux下的UART驱动框架1. uart_driver 注册与注销2. uart_port 的添加与移除3. uart_ops 实现二、6u UART驱动分析1. UART 的 的 platform 驱动框架2. uart_driver 初始化3. uart_port 初始化与添加4. imx_pops 结构体变量三、原理图分析四、RS232驱动编写1. UART3 IO 节点创建2. 添加 uart3 节点五、移植minicom1. 移植ncurses2. 移植 minicom六、RS原创 2021-08-15 22:24:32 · 5453 阅读 · 2 评论 -
SPI驱动icm20608的实验
文章目录一、设备树二、驱动程序三、应用程序四、测试一、设备树在pinctrl节点中添加: /* spi驱动 icm20608 */ pinctrl_ecspi3: icm20608 { fsl,pins = < MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20 0x10b0 /* CS */ /* 只是一个普通的GPIO */ MX6UL_PAD_UART2_RX_DATA__ECSPI3_SCLK 0x10b1 /* SCLK */原创 2021-08-15 21:56:02 · 1643 阅读 · 0 评论 -
linux SPI驱动实验
文章目录一、linux下SPI驱动框架简介1. SPI主机驱动1. spi_master 申请与释放2.spi_master 的注册与注销2. SPI设备驱动3. SPI设备和驱动匹配过程二、6u SPI主机驱动框架分析三、SPI设备驱动编写流程1. SPI设备信息描述1. IO的pinctrl子节点创建与修改2. SPI 设备节点的创建与修改2. SPI设备数据收发处理流程四、硬件原理图分析五、实验程序编写1. 修改设备树1. 添加 ICM20608所使用的 IO2. 在 ecspi3节点追加 icm2原创 2021-08-15 11:53:42 · 1384 阅读 · 1 评论 -
I2C驱动ap3216c的实验
文章目录一、驱动程序二、应用程序三、测试ap3216c手册资料一、驱动程序ap3216c.h#ifndef AP3216C_H#define AP3216C_H#define AP3216C_ADDR 0x1E /* AP3216C 器件地址 *//* AP3216C 寄存器 */#define AP3216C_SYSTEMCONG 0x00 /* 配置寄存器 */#define AP3216C_INTSTATUS 0X01 /*原创 2021-08-15 11:24:00 · 1661 阅读 · 1 评论 -
linux I2C驱动实验
文章目录一、linux I2C驱动框架简介1. I2C总线驱动2. I2C设备驱动1. I2C_client结构体2. i2c_driver 结构体3. I2C设备和驱动匹配过程1. i2c_adapter 注册/ 注销函数2. i2c_driver 注册/ 注销函数二、6u的I2C适配器驱动分析三、I2C设备驱动编写流程1. I2C设备信息描述1. 未使用设备树的时候2. 使用设备树的时候2. I2C设备数据收发处理流程四、硬件原理图分析五、实验程序编写1. 修改设备树1. IO 修改或添加2. 在原创 2021-08-14 23:08:34 · 910 阅读 · 0 评论 -
linux RTC驱动实验
文章目录一、linux内核RTC驱动简介二、6u内部RTC驱动分析三、RTC时间查看与设置1.1.时间RTC查看2.设置 RTC 时间RTC 也就是实时时钟,用于记录当前系统时间,对于 Linux 系统而言时间是非常重要的,就和我们使用 Windows 电脑或手机查看时间一样,我们在使用 Linux 设备的时候也需要查看时间。一、linux内核RTC驱动简介RTC 设备驱动是一个标准的字符设备驱动,应用程序通过 open、release、read、write 和 ioctl等函数完成对 RTC 设备的原创 2021-08-14 22:40:25 · 687 阅读 · 0 评论 -
input 按键驱动实验
文章目录一、驱动程序二、应用程序三、测试一、驱动程序keyinput.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>原创 2021-08-14 22:12:05 · 387 阅读 · 0 评论 -
misc驱动蜂鸣器
文章目录一、驱动程序二、应用程序三、测试一、驱动程序miscbeep.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>原创 2021-08-14 20:38:00 · 124 阅读 · 0 评论 -
platform设备树驱动led
一、驱动程序dtsleddriver.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>#include <linu原创 2021-08-14 16:38:16 · 149 阅读 · 0 评论 -
platform无设备树驱动led
一、驱动程序leddriver.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/g原创 2021-08-14 16:11:08 · 134 阅读 · 0 评论 -
异步通知实验
文章目录一、驱动程序二、应用程序三、测试一、驱动程序asyncnoti.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>原创 2021-08-14 11:32:31 · 101 阅读 · 0 评论 -
阻塞和非阻塞实验
文章目录一、阻塞实验1.驱动程序2.应用程序3.测试二、非阻塞实验1.驱动程序2.应用程序3.测试一、阻塞实验1.驱动程序blockio.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h&g原创 2021-08-14 10:51:59 · 233 阅读 · 0 评论 -
按键中断实验
文章目录一、设备树二、驱动程序三、应用程序四、测试一、设备树在/节点的key节点下添加:/* 添加中断信息 */ interrupt-parent = <&gpio1>; // 父中断控制器 interrupts = <18 IRQ_TYPE_EDGE_BOTH>; //中断源 上升沿和下降沿二、驱动程序irq.c#include <linux/types.h>#include <linux/kernel.h>#incl原创 2021-08-13 23:11:29 · 656 阅读 · 1 评论 -
内核定时器驱动LED
一、驱动程序timer.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/gpio.原创 2021-08-13 21:27:07 · 235 阅读 · 0 评论 -
不加处理按键输入
一、设备树在pinctrl中添加: /* 添加KEY的PIN信息 */ pinctrl_key:keygrp { fsl,pins = < /* 设备所使用的PIN配置信息 */ MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0xF080 /* key0 */ >; };在/节点中添加: /* key 设备节点 */ key{ #address-cells = <1>; #size-cells =原创 2021-08-13 20:05:59 · 173 阅读 · 0 评论 -
原子操作+自旋锁+信号量+互斥体
一、原子操作1.驱动程序#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/gpio.h原创 2021-08-13 17:05:12 · 144 阅读 · 0 评论 -
蜂鸣器实验
文章目录一、设备树二、驱动程序三、应用程序四、测试一、设备树在pinctrl中添加:/* 添加BEEP的PIN信息 */ pinctrl_beep:beepgrp { fsl,pins = < /* 设备所使用的PIN配置信息 */ MX6ULL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x10B0 /* beep */ >; };在/节点中添加:/* Bepp 设备节点 */ beep{ #address-cell原创 2021-08-13 15:46:22 · 191 阅读 · 0 评论 -
pinctrl加gpio驱动LED
文章目录一、设备树二、驱动程序三、应用程序四、测试一、设备树在pinctrl节点中添加: /* 添加LED的PIN信息 */ pinctrl_led:ledgrp { fsl,pins = < /* 设备所使用的PIN配置信息 */ MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x10B0 /* LED */ >; };在/ 节点中添加:/* LED 设备节点 */ led{ #address-cells = &原创 2021-08-13 15:17:28 · 324 阅读 · 0 评论 -
设备树下的LED驱动
文章目录一、驱动程序二、应用程序三、测试一、驱动程序dtsled.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>#i原创 2021-08-13 10:49:13 · 345 阅读 · 0 评论 -
新字符设备LED驱动
文章目录一、驱动程序二、应用程序三、测试一、驱动程序newchrled.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>原创 2021-08-12 23:02:24 · 121 阅读 · 0 评论 -
LED字符设备驱动
文章目录一、驱动程序二、应用程序三、测试一、驱动程序led.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>#incl原创 2021-08-12 22:53:48 · 280 阅读 · 0 评论 -
字符设备驱动实验
文章目录Makefile一、驱动程序二、应用程序三、测试Makefile这是第一个程序,这里就贴出来程序,后面的就不贴了,都一样的。MakefileKERNELDIR := /home/luatao/linux/linux/luatao_linux/linux-imx-rel_imx_4.1.15_2.1.0_ga_luataoCURRENT_PATH := $(shell pwd)obj-m := chrdevbase.obuild: kernel_moduleskernel_mod原创 2021-08-12 22:42:03 · 256 阅读 · 0 评论 -
linux LCD驱动实验
文章目录一、linux下LCD驱动解析1.Framebuffer设备2.LCD驱动解析二、硬件原理图分析三、LCD驱动程序编写1.LCD 屏幕 IO 配置2.LCD 屏幕参数节点信息修改3.LCD 屏幕背光节点信息四、运行测试1.编译新的设备树2.使能Linux logo显示3.设置 LCD 作为终端控制台1.设置 uboot 中的 bootargs2.修改/etc/inittab 文件3.LCD 背光调节4.LCD 自动关闭解决办法1.按键盘唤醒2.关闭 10 分钟熄屏功能3.编写一个 APP原创 2021-08-08 06:59:14 · 1758 阅读 · 0 评论 -
linux INPUT子系统实验
文章目录一、input子系统1.input子系统简介2.input驱动编写流程1.注册 input_dev2.上报输入事件3.input_event结构体二、硬件原理图分析三、实验程序编写1.修改设备树文件2.按键input驱动程序编写3.编写测试APP四、运行测试五、linux自带按键驱动程序的使用1.自带按键驱动程序源码解析2.自带按键驱动程序的使用按键、鼠标、键盘、触摸屏等都属于输入(input)设备,Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符原创 2021-08-07 23:10:37 · 280 阅读 · 0 评论 -
linux MISC驱动实验
文章目录一、MISC设备驱动简介二、硬件原理图分析三、实验程序编写1.修改设备树2.beep驱动程序编写3.编写测试APP四、运行测试misc 的意思是混合、杂项的,因此 MISC 驱动也叫做杂项驱动,也就是当我们板子上的某些外设无法进行分类的时候就可以使用 MISC 驱动。MISC 驱动其实就是最简单的字符设备驱动,通常嵌套在 platform 总线驱动中,实现复杂的驱动一、MISC设备驱动简介所有的 MISC 设备驱动的主设备号都为 10,不同的设备使用不同的从设备号。随着 Linux字符设原创 2021-08-07 07:20:52 · 209 阅读 · 0 评论 -
linux自带的LED灯驱动实验
文章目录一、linux内核自带LED驱动使能二、linux内核自带LED驱动简介1.LED灯驱动框架分析2.module_platform_driver函数解析3.gpio_led_probe函数解析三、设备树节点编写四、运行测试1.设置LED为系统指示灯前面我们都是自己编写 LED 灯驱动,其实像 LED 灯这样非常基础的设备驱动,Linux 内核已经集成了。Linux 内核的 LED 灯驱动采用 platform 框架,因此我们只需要按照要求在设备树文件中添加相应的 LED 节点即可,一、linux原创 2021-08-06 08:05:49 · 1156 阅读 · 0 评论 -
设备树下的platform驱动编写
文章目录一、设备树下的platform驱动简介1.在设备树中创建设备节点2.编写 platform 驱动的时候要注意兼容属性3.编写platform驱动二、硬件原理图分析三、实验程序编写1.修改设备树文件2.platform驱动程序编写3.编写测试APP四、运行测试一、设备树下的platform驱动简介platform 驱动框架分为总线、设备和驱动,其中总线不需要我们这些驱动程序员去管理,这个是 Linux 内核提供的,我们在编写驱动的时候只要关注于设备和驱动的具体实现即可。在没有设备树的 Linux原创 2021-08-06 07:55:32 · 791 阅读 · 0 评论 -
platform设备驱动实验
文章目录一、linux驱动的分离与分层1.驱动的分隔与分离2.驱动的分层二、platform平台驱动模型简介1.platform总线2.platform驱动3.platform设备三、硬件原理图分析四、实验程序编写1.platform设备与驱动程序编写2.测试APP编写五、运行测试一、linux驱动的分离与分层我们在前面几章编写的设备驱动都非常的简单,都是对IO进行最简单的读写操作。像I2C、SPI、LCD 等这些复杂外设的驱动就不能这么去写了,Linux 系统要考虑到驱动的可重用性,因此提出了驱动的原创 2021-08-06 07:46:55 · 366 阅读 · 0 评论 -
异步通知实验
文章目录一、异步通知1.异步通知简介2.驱动中的信号处理1.fasync_struct 结构体2.fasync 函数3.kill_fasync 函数3.应用程序对异步通信的处理1.、注册信号处理函数2.将本应用程序的进程号告诉给内核3.开启异步通知二、硬件原理图分析三、实验程序编写1.修改设备树文件2.程序编写3.编写测试APP四、运行测试一、异步通知在前面使用阻塞或者非阻塞的方式来读取驱动中按键值都是应用程序主动读取的,对于非阻塞方式来说还需要应用程序通过 poll 函数不断的轮询。最好的方式就是驱原创 2021-08-05 23:21:32 · 263 阅读 · 0 评论 -
linux阻塞和非阻塞IO实验
文章目录一、阻塞和非阻塞IO1.阻塞和非阻塞简介2.等待队列1.等待队列头2.等待队列项3.将队列项添加/移除等待队列头4.等待唤醒5.等待事件3.轮询1.select函数2.poll3.ePoll4.linux驱动下的poll操作函数二、阻塞IO实验1.硬件原理图分析2.实验程序编写1.驱动程序编写2.编写测试APP3.运行测试三、非阻塞IO实验1.硬件原理图分析2.实验程序编写1.驱动程序编写2.编写测试APP3.运行测试一、阻塞和非阻塞IO阻塞和非阻塞 IO 是 Linux 驱动开发里面很常见的两原创 2021-08-05 19:37:12 · 344 阅读 · 0 评论