exArtist_3D打印机 exArtist_3D打印机开源至Github:点我传送 简介exArtist_3D打印机基于arduino主控制作的第二款,Artist系列作品。 主控用的是arduino官方开发板,软件使用Marlin固件。 机械部分设计,是使用solidworks设计的。 此作品为测试,和兴趣。 靓照: 2020-09-18 PROJECT product Embedded product arduino
exArtist_写字机 exArtist_写字机Github:点我传送 一、简介exArtist_写字机是我基于arduino主控制作的第一款,Artist系列作品。 主控用的是arduino官方开发板,G-code解释器是网上开源的grbl。 机械部分设计,是使用solidworks设计的。 此作品为测试,和兴趣。 靓照: 2020-09-18 PROJECT product Embedded product arduino
STM32串口烧录BIN文件、字库文件【QT上位机】 STM32串口烧录BIN文件、字库文件【QT上位机】项目已开源至GitHub,供大家一起学习使用 点我传送 一.上位机部分 使用QT-C++ 编写的上位机 预览图如下 程序思路: 使用串口通讯进行发送规定的帧数据,上位机会将BIN文件数据分析打包成每一帧传送给下位机。下位机,接受到数据后,进行ACK应答,程序接受到应答后,继续发送数据,直至完成发送。1.帧协议格式: 如发送数据:C5 2020-09-16 PROJECT software Embedded QT STM32
19| Linux SPI驱动实验 Linux SPI驱动实验上一章我们讲解了如何编写 Linux 下的 I2C 设备驱动,SPI 也是很常用的串行通信协议,本章我们就来学习如何在 Linux 下编写 SPI 设备驱动。本章实验的最终目的就是驱动 I.MX6U-ALPHA 开发板上的 ICM-20608 这个 SPI 接口的六轴传感器,可以在应用程序中读取 ICM-20608的原始传感器数据。 1| Linux 下 下 SPI 驱动 2020-09-14 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
21| Linux 电容触摸实验 Linux 电容触摸实验Linux 下电容触摸屏驱动框架简介1| 多点触摸(MT) 协议详解电容触摸驱动的基本原理回顾一下几个重要的知识点: ①、电容触摸屏是 IIC 接口的,需要触摸 IC,以正点原子的 ATK7016 为例,其所使用的触摸屏控制 IC 为 FT5426,因此所谓的电容触摸驱动就是 IIC 设备驱动。 ②、触摸 IC 提供了中断信号引脚(INT),可以通过中断来获取触摸信息。 2020-09-14 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
22| Linux 音频驱动 Linux 音频驱动一、音频接口简介1| 为何需要音频编解码芯片?处理器要想“听到”外界的声音必须要把外界的声音转化为自己能够理解的“语言”,处理器能理解的就是 0 和 1,也就是二进制数据。所以我们需要先把外界的声音转换为处理器能理解的 0 和 1,在信号处理领域,外界的声音是模拟信号,处理器能理解的是数字信号,因此这里就涉及到一个模拟信号转换为数字信号的过程,而完成这个功能的就是 ADC 芯片 2020-09-14 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
23| Linux USB驱动实验 Linux USB驱动实验USB 是很常用的接口,目前大多数的设备都是 USB 接口的,比如鼠标、键盘、USB 摄像头等,我们在实际开发中也常常遇到 USB 接口的设备,本章我们就来学习一下如何使能 Linux内核自带的 USB 驱动。 注意!这里不讲解具体的 USB 开发,因为 USB 接口很复杂,不同的设备其协议也不同,这不是简简单单一章内容就能说完的,USB 驱动开发本身就是一门复杂的课程。 2020-09-14 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
24| Linux 块设备驱动实验 Linux 块设备驱动实验块设备驱动是Linux 三大驱动类型之一。块设备驱动要远比字符设备驱动复杂得多,不同类型的存储设备又对应不同的驱动子系统,本章我们重点学习一下块设备相关驱动概念,不涉及到具体的存储设备。最后,我们使用 ALPHA 开发板板载 RAM 模拟一个块设备,学习块设备驱动框架的使用。 一、什么是块设备?块设备是针对存储设备的,比如 SD 卡、EMMC、NAND Flash、Nor 2020-09-14 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
13| Linux自带的LED灯驱动 Linux自带的LED灯驱动前面我们都是自己编写 LED 灯驱动,其实像 LED 灯这样非常基础的设备驱动,Linux 内核已经集成了。Linux 内核的 LED 灯驱动采用 platform 框架,因此我们只需要按照要求在设备树文件中添加相应的 LED 节点即可,本章我们就来学习如何使用 Linux 内核自带的 LED 驱动来驱动 I.MX6U-ALPHA 开发板上的 LED0。 1| Linu 2020-09-13 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
14| Linux MISC驱动实验 Linux MISC驱动实验misc 的意思是混合、杂项的,因此 MISC 驱动也叫做杂项驱动,也就是当我们板子上的某些外设无法进行分类的时候就可以使用 MISC 驱动。 MISC 驱动其实就是最简单的字符设备驱动,通常嵌套在 platform 总线驱动中,实现复杂的驱动,本章我们就来学习一下 MISC 驱动的编写。 一、MISC 设备驱动简介所有的 MISC 设备驱动的主设备号都为 10,不同的 2020-09-13 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
15| Linux INPUT子系统实验 Linux INPUT子系统实验按键、鼠标、键盘、触摸屏等都属于输入(input)设备,Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。 输入设备本质上还是字符设备,只是在此基础上套上了 input 框架,用户只需要负责上报输入事件,比如按键值、坐标等信息,input 核心层负责处理这些事件。本章我们就来学习一下 Linux 内核中的 input 子系统。 一、INPU 2020-09-13 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
16| Linux LCD驱动实验 Linux LCD驱动实验LCD 是很常用的一个外设,在裸机篇中我们讲解了如何编写 LCD 裸机驱动,在 Linux 下LCD 的使用更加广泛,在搭配 QT 这样的 GUI 库下可以制作出非常精美的 UI 界面。本章我们就来学习一下如何在 Linux 下驱动 LCD 屏幕。 一、Linux 下 LCD 驱动简析1| Framebuffer 设备先来回顾一下裸机的时候 LCD 驱动是怎么编写的,裸 2020-09-13 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
17| Linux RTC驱动 Linux RTC驱动RTC 也就是实时时钟,用于记录当前系统时间,对于 Linux 系统而言时间是非常重要的,就和我们使用 Windows 电脑或手机查看时间一样,我们在使用 Linux 设备的时候也需要查看时间。本章我们就来学习一下如何编写 Linux 下的 RTC 驱动程序。 1| Linux 内核 RTC 驱动简介RTC 设备驱动是一个标准的字符设备驱动,应用程序通过 open、rel 2020-09-13 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
18| Linux I2C驱动实验 Linux I2C驱动实验I2C 是很常用的一个串行通信接口,用于连接各种外设、传感器等器件。本章我们来学习一下如何在 Linux 下开发 I2C 接口器件驱动,重点是学习 Linux 下的 I2C 驱动框架,按照指定的框架去编写 I2C 设备驱动。本章同样以 I.MX6U-ALPHA 开发板上的 AP3216C 这个三合一环境光传感器为例,通过 AP3216C 讲解一下如何编写 Linux 下的 2020-09-13 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
1、esp-idf应用程序启动流程 esp-idf 应用程序启动流程一、应用程序的内存布局IRAM(指令 RAM)ESP-IDF 将内部 SRAM0 区域的一部分分配为指令 RAM。 除了开始的 64kB 用作 PRO CPU 和 APP CPU 的高速缓存外,剩余内存区域(从 0x40080000 至 0x400A0000 )被用来存储应用程序中部分需要在RAM中运行的代码。 一些 ESP-IDF 的组件和 WiFi 协议栈的部分 2020-09-12 NOTE ESP Embedded ARM ESP32
10| Linux阻塞非阻塞IO实验 Linux阻塞非阻塞IO实验阻塞和非阻塞 IO 是 Linux 驱动开发里面很常见的两种设备访问模式,在编写驱动的时候一定要考虑到阻塞和非阻塞。本章我们就来学习一下阻塞和非阻塞 IO,以及如何在驱动程序中处理阻塞与非阻塞,如何在驱动程序使用等待队列和 poll 机制。 一、阻塞和非阻塞IO1|阻塞和非阻塞简介这里的“IO”并不是我们学习 STM32 或者其他单片机的时候所说的“GPIO”(也就是引 2020-09-12 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
11| Linux异步通知实验 异步通知实验在前面使用阻塞或者非阻塞的方式来读取驱动中按键值都是应用程序主动读取的,对于非阻塞方式来说还需要应用程序通过 poll 函数不断的轮询。最好的方式就是驱动程序能主动向应用程序发出通知,报告自己可以访问,然后应用程序在从驱动程序中读取或写入数据,类似于我们在裸机例程中讲解的中断。Linux 提供了异步通知这个机制来完成此功能,本章我们就来学习一下异步通知以及如何在驱动中添加异步通知相关处 2020-09-12 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
12| Platform 设备驱动实验 Platform 设备驱动实验我们在前面几章编写的设备驱动都非常的简单,都是对IO进行最简单的读写操作。像I2C、SPI、LCD 等这些复杂外设的驱动就不能这么去写了,Linux 系统要考虑到驱动的可重用性,因此提出了驱动的分离与分层这样的软件思路,在这个思路下诞生了我们将来最常打交道的platform 设备驱动,也叫做平台设备驱动。本章我们就来学习一下 Linux 下的驱动分离与分层,以及 pl 2020-09-12 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发
8| Linux 内核定时器实验 Linux 内核定时器实验定时器是我们最常用到的功能,一般用来完成定时功能,本章我们就来学习一下 Linux 内核提供的定时器 API 函数,通过这些定时器 API 函数我们可以完成很多要求定时的应用。Linux内核也提供了短延时函数,比如微秒、纳秒、毫秒延时函数,本章我们就来学习一下这些和时间有关的功能。 一、Linux 时间管理和内核定时器简介1|内核时间管理简介学习过 UCOS 或 Fr 2020-09-12 NOTE ARM-Linux 驱动开发篇 Embedded ARM Linux 驱动开发