Linux驱动(六):Linux2.6驱动编写之平台设备总线 本文主要介绍了一下两种驱动编写方法:1.比较原始的设备端+驱动端编写方法。2.效率较高的设备树+驱动端编写方法。最后,使用LED闪烁实战验证了一下。
Linux驱动(四):Linux2.6字符设备驱动及GPIO子系统 主要内容就是搞了个Linux2.6字符设备驱动的编码框架,然后简单使用驱动代码编写了GPIO子系统,配置了一下两个LED灯io口,最后使用应用程编写代码调用底层驱动的API接口,使两个LED灯闪烁。
Linux驱动(三):字符设备驱动之杂项 内核和网络设备驱动程序间的通信,完全不同于内核和字符以及块驱动程序之间的通信,内核调用一套和数据包相关的函数socket,也叫套接字。,除了块设备和网络设备,其他设备基本都是字符设备,我们常常写的驱动代码,也往往是字符设备。用于处理与内核不直接相关的设备或功能的驱动程序,适用于各种简单或虚拟设备的实现,并为开发者提供了一种简便的方式来处理字符设备。中都会被抽象成文件,所有对硬件设备的操作到应用层中,也都会被抽象成文件的操作,设备文件通常会被放在/dev目录下。每一个字符设备在应用层的抽象文件也被叫做。
Linux驱动(一):环境搭建及介绍 自用自用自用,晚上睡觉前复盘用。当然,也欢迎大家参考指正。积极认错,坚决不该(bushi)。uboot 版本 — 2017.09 kernel 版本 — linux 5.10.110。
喵喵蓝牙热敏打印机(下) 1.能够模拟作业帮旗下喵喵机的通信协议,通过手机app喵喵机(V6.2.80)进行蓝牙连接打印。2.能够通过图片取模打印图片。3.打印机进行打印时,LED灯快闪提示用户。打印完LED灯1s闪一次,提示用户打印机进入待机状态。4.能够进行缺纸检测,缺纸时会进行电机微动提示用户。5.能够进行电量检测并将结果发送给app端,能进行打印头温度检测,过热时自动停止加热并闪灯+电机微动。6.能够进行按键出纸,按下按键打印机能够自动出纸。
喵喵蓝牙热敏打印机(上) 3.配置引脚模式,引脚5连接按键(BUTTON),为了能够检测该引脚的高低电平,将该引脚配置为输入模式。引脚18连接LED灯,为了能够输出高电平控制LED灯的亮灭,将该引脚配置为输出模式。2.定义LED_ON()为digitalWrite(LED, LOW),代表此时灯亮,定义LED_OFF()为digitalWrite(LED, HIGH),代表此时灯灭,方便后续操作。SPI 时钟引脚 (SCK)、SPI 从输入引脚 (MISO)、SPI 主输出引脚 (MOSI)、和 SPI 片选引脚 (SS)。
STM32第二十三课:GUI-Guider安装使用及项目移植(7.11版本) GUI-Guider就是一个LVGL界面辅助设计工具,通过GUI-Guider我们可以快速创建多个屏幕,导入多个字体,图片,图标等。
STM32第二十一课:FreeRTOS事件组&软件定时器 如果 configTICK_TYPE_WIDTH_IN_BITS 设置为 TICK_TYPE_WIDTH_16_BITS,则事件组内实现的位数(或标志数)为 8;如果 configTICK_TYPE_WIDTH_IN_BITS 设置为 TICK_TYPE_WIDTH_32_BITS,则为 24;如果 configTICK_TYPE_WIDTH_IN_BITS 设置为 TICK_TYPE_WIDTH_64_BITS,则为 56。如果 configUSE_16_BIT_TICKS 设置为 0,则为 24。
STM32第二十课:FreeRTOS任务管理和信号量 2.任务被执行时就会变为运行态时,该任务就会从就绪链表删除,若此时执行到任务中的vTaskDelay等函数时,该任务就会被挪到阻塞链表中。调度器此时会去执行其他任务。若解除任务的优先级很高,那么此时该任务会直接打断cpu正在执行的任务,抢占位置去执行自己。本质上就是一个钩子函数,在任务上下文切换的时候做检测,具有一定的滞后性,需要在任务发生上下文切换时才会进行,任务堆栈溢出时并不能马上检测到问题。二值信号量也一样,谁拥有谁执行,比如任务B需要获得信号量才能执行,那么他就要等待A给他一个信号量然后再去执行。
STM32第十九课:FreeRTOS移植和使用 其中,FreeRTOSConfig.h 是直接从 demo 文件夹下面拷贝过来的,该头文件对裁剪整个FreeRTOS 所需的功能的宏均做了定义,有些宏定义被使能,有些宏定义被失能,一开始我们只需要配置最简单的功能即可。如果用户想要实现多个任务并行的效果,可以通过加入FreeRtos(嵌入式实时操作系统),操作系统可以让STM32实现任务的快速切换,从而给人一种。和裸机操作不同,操作系统中执行的是一个一个任务块,通过任务调度器(使用相关的调度算法)来决定当前时刻要执行哪个任务。
STM32第十八课:SPI&Flash 一般能够支持SPI模式0的设备也支持SPI模式3,支持模式1的设备也支持模式2。一般的传输数据时候采用的就是8位进行,高位先传还是低位先传,传输的速度。3.循环往FLash发送数据(无所谓什么数据,只是为了置换出FLash状态寄存器的值),判断寄存器的第0位BUSY是否为0,为0时就代表Flash为空闲状态,可以执行其他操作。:判断接收缓冲器非空(RXNE)是否为0,为0表示接受缓冲区为空,没数据,此时持续等待数据到来。CPHA:时钟相位, CPHA=0时,在时钟的第一个边沿进行采样,第二个边沿进行输出。
STM32第十七课:连接云平台进行数据传输 1.当代码将报文发送给串口3时,由于串口3连接的是wifi模块,此时就相当于将报文通过wifi模块传送到云端。2.将数据传输到串口1时,由于串口1连接的是电脑上,所以相当于将数据打印。