外设

Linux下禁用笔记本键盘

匿名 (未验证) 提交于 2019-12-02 21:56:30
使用方式 :手动执行 执行效果 :执行一次脚本, 插入外设键盘时,禁用笔记本键盘;未插入外设键盘时,使用笔记本键盘 所需软件包 :xinput 所需变量 :外设键盘名,笔记本键盘名 使用步骤 : 安装 xinput 软件 ubuntu终端输入 sudo apt-get install xinput centos终端输入 sudo yum install xinput 其他linux系统自行百度安装 xinput 查找外设键盘名 未插入 外设键盘,终端输入 xinput 插入 外设键盘,终端输入 xinput 对比输出文本中 多出的部分 ,就是外设键盘名。如下面的 SEMICO USB Keyboard ps:外设键盘名可能有多个id,无需担心,它们的名称都一样的 新建脚本 keyboard.sh ,内容如下, 必须在步骤2中手动查找外设键盘名,并在keyboard.sh中修改外设键盘名 ps:若想多场景使用,可以参照 扩展脚本 外设键盘B 的方式修改 #!/bin/bash # 笔记本键盘名 #默认是这个,如果不是,使用xinput中判断您的笔记本键盘名 KEYBOARD_DEV='AT Translated Set 2 keyboard' # 外设键盘名 #通过步骤2获取外设键盘名,该变量必须修改 USB_KEYBOARD_DEV='SEMICO USB Keyboard'

Linux SPI驱动学习——注册匹配

扶醉桌前 提交于 2019-12-02 02:47:14
目录 博客说明 开发环境 1. Linux SPI概述 1.1 SPI驱动框架 2. SPI 注册匹配 2.1 spi_drive注册 2.2 spi_device注册 只有下面这个程序是本节要单独编写的代码 2.3 SPI的device和driver匹配 附录: @(Linux SPI驱动学习——device、driver注册匹配) 博客说明 撰写日期 2019.10.22 完稿日期 2019.10.23 最近维护 暂无 本文作者 multimicro 联系方式 multimicro@qq.com 资料链接 本文无附件资料 GitHub https://github.com/wifialan/drivers/ 原文链接 https://blog.csdn.net/multimicro/article/details/102685871 开发环境 环境说明 详细信息 备注信息 操作系统 Ubunut 18.04 开发板 JZ2440-V3 Linux内核 linux-3.4.2 1. Linux SPI概述 鄙人通过查看 宋宝华《Linux设备驱动开发详解–基于最新的Linux 4.0内核》 第12章:Linux设备驱动的软件架构思想,初步了解了 总线 、 设备 和 驱动 这三个名词: 总线: 比如4线SPI的总线是四条线,这四条线就构成了SPI总线,但不知道这样解释合不合适,=

玩转zynq7010+ FPGA点亮三色灯

好久不见. 提交于 2019-12-01 18:38:24
前期主要以开发Z-TURN的PL部分为主,以期望了解该芯片的逻辑架构和系统总线,以及所有外设,后面在开始PS部分的开发,闲话少说,先看整个7z010的系统框图,所有开发目前基于ISE14.6来设置, 在软件中可以看到PL和PS部分的总线连接以及PS和PL的外设资源,根据米尔提供的原理图的,找到控制RGB LED的控制管脚,并编写一个RGB LED闪烁的veriloG代码,成功让RGB LED闪烁起来。 研究这个板子的时候,发现该开发板是可以开发NANDFLASH的,只是米尔没有贴上去,如过后期有时间,准备自己焊接一个镁光的NANDFLASH,做数据存储。 来源: https://www.cnblogs.com/cbd7788/p/11712599.html

s3c2440的Memory Controller与外设地址线错位连接分析

扶醉桌前 提交于 2019-12-01 06:56:54
在s3c2440数据手册中如图所示: 外设Flash数据位宽为8bit时,(Memory Cotroller 的地址线 )A0——A0(外设Flash 的A0); 外设Flash数据位宽为16bit时,(Memory Cotroller 的地址线 )A1——A0(外设Flash 的A0); 外设Flash数据位宽为32bit时,(Memory Cotroller 的地址线 )A2——A0(外设Flash 的A0); 原因: CPU的地址线(LADDR0~LADDR20)对应的最小数据单元是字节,即8bit; 在实际应用中,所用到的外设Flash 通常数据位宽有8bit、16bit、32bit,CPU要按照8bit的数据位宽准确获取数据,肯定就是CPU和Flash 存在中间层解决了这个问题,就是Memory Controller 。 根据外设Flash的数据位宽,通过硬件处理,按照每个地址读取8bit的数据处理方式。如数据位宽16bit的NOR Flash,如图所示: 一、从Nor flash读取数据 1、每次获取1byte数据 a、当CPU要获取地址 0 上的数据时,Memery Controller发出地址0b00000000000000000000,NOR Flash 收到地址0b00000000000000000000,返回数据线(LDATA0~LDATA15

spc5studio的使用

 ̄綄美尐妖づ 提交于 2019-12-01 02:48:00
spc5studio是一款ST的专门正对spc56xx等系列的IDE。注意,该IDE也在不断更新当中。不同的版本之间还是存在差异的。 并且,不仅仅支持56系列的单片机。 其配置功能是比较强大的。如果配合一个比较好用的调试器(比如trace32),是能够很方便地用起来的。 这个IDE的设计思路和autosar的mcal的工具有类似之处。靠对用户友好的配置界面进行基础软件的配置。 存在以下困难需要克服。 1、不要手动修改配置自动生成的文件。 因为存在覆盖问题。但是,自己在source文件夹下新建的文件和在main.c中写的自定义的内容是不会被覆盖的。 2、存在修改配置无法生效,莫名其妙报错的情况。此时,应该选择对整个工程的配置进行clean。然后再生成代码。 实在解决不了的话,之前的删除,新建一个工程。但是缺点在于,需要费劲地重新再配置一下。 3、存在对gui中的一些配置项不理解或者“misleading”的情况。此时,只能配合调试器来对选项的含义进行猜测了。 4、基本上通过对pin、clk、外设的配置和在main中对其进行调用。一个简单的外设功能就能够demo出来了。 再配合信号发生器和示波器的使用。如果存在和预期不一致的情况,是能很方便地调试出问题的。 5、能够少写一行代码,就不要多写一行代码。要尽量减少代码的复杂度。(先不讨论某些死板的编码规范) 来源: https://www

stm32学习笔记——DMA

邮差的信 提交于 2019-11-30 18:17:31
stm32 学习笔记—— DMA 目的:用 DMA 发送数据到 USART1 并同时点亮 LED 灯,熟悉 DMA 配置过程 配置文件: #include "stm32f10x_dma.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" 结构体定义: typedef struct { uint32_t DMA_PeripheralBaseAddr; //DMA 传输目标地址 uint32_t DMA_MemoryBaseAddr; //DAM 传输源地址 uint32_t DMA_DIR; //DMA 传输方向 uint32_t DMA_BufferSize; //DMA 传输大小 uint32_t DMA_PeripheralInc; // 外设是否开启地址自增 uint32_t DMA_MemoryInc; // 内存是否开启地址自增 / uint32_t DMA_PeripheralDataSize;// 外设数据单元 uint32_t DMA_MemoryDataSize; // 内存数据单元,与前者须一致 uint32_t DMA_Mode; //DMA 模式,可循环,也可不循环 uint32_t DMA_Priority; //DMA 优先级,多个

嵌入式02 STM32 实验01 端口复用和重映射

此生再无相见时 提交于 2019-11-30 14:36:12
端口复用 :   STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个内置外设使用的时候,此时是不可以作为外部外设使用的,此时这个端口就叫做被复用了。   比如一个端口可以作为输入输出(使能端口时钟),同时它也可以作为串口使用(使能串口时钟),此时就说明这个端口被复用了    端口复用是重点,只要使用stm32就要用到外设,外设是与gpio引脚共用(复用)的,即某些引脚既可以单纯作为输入输出,又可以作为具有一定功能的内设(如ADC, 串口等等)的引脚端口。 实现方法:   1、使能端口时钟   2、使能复用功能的时钟   3、按照数据手册配置端口模式 1 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //①IO时钟使能 2 3 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); //②外设时钟使能 4 5 //③初始化IO为对应的模式 6 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 7 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 8 GPIO_InitStructure

iOS开发之蓝牙4.0开发使用

戏子无情 提交于 2019-11-30 10:12:44
转载自https://www.jianshu.com/p/f0e4b0e98336 2015年的时候自己写过一个蓝牙4.0项目,当忘了写博客,最近看到这篇博客写的挺详细,所以转载一下 一: 介绍 蓝牙分为蓝牙2.0和蓝牙4.0。 蓝牙2.0为传统蓝牙,传统蓝牙也称为经典蓝牙。 蓝牙4.0因为低耗电,所以也叫做低功耗蓝(BLE),它将三种规格集一体,包括传统蓝牙技术、高速技术和低耗能技术。 这篇文章用来介绍BLE 4.0的使用以及相关问题的解决。 二:BLE的两种模式 BLE的两种模式分为CBCentralMannager 中心模式 和CBPeripheralManager 外设模式,在这里主要和大家分享CBCentralMannager 中心模式的开发和使用。 CBCentralMannager 中心模式 以手机(app)作为中心,连接其他外设的场景。详细流程如下: 建立中心角色 扫描外设 发现外设 连接外设 4.1 连接失败 4.2 连接断开 4.3 连接成功 扫描外设中的服务 5.1 发现并获取外设中的服务 扫描外设对应服务的特征 6.1 发现并获取外设对应服务的特征 6.2 给对应特征写数据 订阅特征的通知 7.1 根据特征读取数据 CBPeripheralManager 外设模式 使用手机作为外设连接其他中心设备操作的场景。 PS:因为苹果设备的安全性和封闭性

【转帖】Linux 内核系统架构

孤街浪徒 提交于 2019-11-30 06:21:18
Linux 内核系统架构 描述Linux内核的文章已经有上亿字了 但是对于初学者,还是应该多学习多看,毕竟上亿字不能一下子就明白的。 即使看了所有的Linux 内核文章,估计也还不是很明白,这时候,还是需要fucking the code. 28年前(1991年8月26日)Linus公开Linux的代码,开启了一个伟大的时代。这篇文章从进程调度,内存管理,设备驱动,文件系统,网络等方面讲解Linux内核系统架构。Linux的系统架构是一个经典的设计,它优秀的分层和模块化,融合了数量繁多的设备和不同的物理架构,让世界各地的内核开发者能够高效并行工作。先来看看Linus在多年前公开Linux的邮件。 "Hello everybody out there using minix - I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS

TMS320F28377学习笔记——SCI串行通信接口

淺唱寂寞╮ 提交于 2019-11-29 23:43:40
本章介绍串行通信接口(SCI)模块的功能和操作。 SCI是一种双线异步串行端口,通常称为UART。 SCI模块支持CPU和使用标准非归零(NRZ)格式的其他异步外设之间的数字通信。 SCI接收器和发送器每个都有一个16级深FIFO,用于减少服务开销,每个都有自己独立的使能和中断位。 两者都可以独立操作以进行半双工通信,或同时进行全双工通信。 为了指定数据完整性,SCI检查接收到的数据是否存在中断检测,奇偶校验,溢出和帧错误。 比特率可通过16位波特选择寄存器编程为不同的速度。 SCI模块的功能包括: •两个外部引脚: SCITXD:SCI发送输出引脚 SCIRXD:SCI接收输入引脚 如果不用于SCI,则两个引脚都可以用作GPIO。 •波特率可编程为64K不同速率 •数据字格式 一个开始位 数据字长度可编程为1至8位 可选偶数/奇数/无奇偶校验位 一个或两个停止位 •四个错误检测标志:奇偶校验,溢出,成帧和​​中断检测 •两种唤醒多处理器模式:空闲线和地址位 •半双工或全双工操作 •双缓冲接收和发送功能 •发送器和接收器操作可以通过具有状态标志的中断驱动或轮询算法来完成。 •发送器和接收器中断的独立使能位(BRKDT除外) •NRZ(不归零)格式 •13个SCI模块控制寄存器位于控制寄存器帧中,从地址7050h开始 该模块中的所有寄存器都是8位寄存器,连接到外设帧2.当访问寄存器时