状态寄存器

STM32驱动ILI9341控制器控制TFTLCD显示

让人想犯罪 __ 提交于 2019-12-01 07:01:17
一、用STM32控制TFTLCD显示的编程方法, 在编程驱动TFTLCD液晶显示器之前,我们先熟悉以下概念: 1、色彩深度,这是一个与TFTLCD显存对应的概念;所谓色彩深度就是每个像素点需要多少位的RGB 数据表示该点的颜色信息。注意,不同的TFTLCD显示器的RGB的对应关系不一样,这个可以在LCD 控制芯片手册中找到答案。 例: 某LCD显示支持8、16、24位RGB,这些位数是指该像素点 颜色由 8、16、 24 位RGB构成,但是 R\G\B三种颜色各占的位数可以查看数据手册。 2、TFTLCD的操作分为两种: A、对控制寄存器的读写操作(即程序员将要操作LCD显存寄存器的地址设置成可读或者可写)。 B、对显存寄存器的读写操作(即读写LCD显存寄存器)。 3、TFTLCD有一个索引寄存器,对控制寄存器操作前,需要对索引寄存器进行定入操作,用以指明 寄存器读写是针对那个寄存器的,具体操作步骤如下: RS为低电平状态下,写入两个字节的数据,第一个字节为零,第二个字节为寄存器索引值。 RS为高电平状态下,读取两个字节数据,第一个字节为高八位,第二个字节为低八位。 二、实验平台STM32F103RCT6与ILI9341 TFTLCD驱动模块 硬件采用 16 位的并方式与外部连接,之所以不采用 8 位的方式,是因为彩屏的数据量比较大, 尤其在显示图片的时候,如果用 8 位数据线

进程上下文与中断上下文

对着背影说爱祢 提交于 2019-12-01 06:39:45
进程上下文与中断上下文 https://www.cnblogs.com/alantu2018/p/8461094.html 有进程上下文切换 也有 模式切换 不通的切换的损耗是不一样的 上下文切换时 堆栈信息 寄存器信息 用户信息都得切换 其实代价还是很高的. 1、前言   最近在学习linux内核方面的知识,经常会看到用户空间与内核空间及进程上下文与中断上下文。看着很熟悉,半天又说不出到底是怎么回事,有什么区别。看书过程经常被感觉欺骗,似懂非懂的感觉,很是不爽,今天好好结合书和网上的资料总结一下,加深理解。 2、用户空间与内核空间      我们知道现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操心系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核,保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为用户空间。每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所有进程共享

ARM体系结构与编程-第六章

别来无恙 提交于 2019-11-30 21:09:04
第六章 ATPCS 介绍 为了使单独编译的C语言和汇编程序之间能够相互调用,必须为子程序间的调用规定一定的规则。ATPCS就是ARM和Thumb程序中子程序调用的基本规则 6.1 ATPCS 概述 基本规则包括子程序调用过程中寄存器的使用规则、数据栈的使用规则、参数的传递规则。根据需要分为 支持数据栈限制检查的ATPCS 支持只读段位制无关(ROPI)的 ATPCS 支持可读写段位置无关(RWPI)的 ATPCS 支持ARM程序和Thumb程序混合使用的ATPCS 处理浮点运算的ATPCS 汇编语言子程序必须满足: 在子程序编写时必须遵守相应的ATPCS规则 数据栈的使用要遵守相应的ATPCS规则 在汇编编译器中使用-atpcs选项 6.2 基本ATPCS 规定了在子程序调用时的一些基本规则,包括: 各寄存器的使用规则及其相应的名称 数据栈的使用规则 参数传递的规则 相对于其他ATPCS,满足基本ATPCS的程序的执行速度更快,所占用的内存更少。但是它不能提供以下的支持: ARM程序和Thumb程序相互调用 数据以及代码的位置无关的支持 子程序的可重入性 数据栈检查支持 6.2.1 寄存器的使用规则 子程序通过寄存器R0~R3来传递参数。 在子程序中,使用寄存器R4~R11来保存局部变量 寄存器R12用作子程序间scratch寄存器,记作ip 寄存器R13用作数据栈指针,记作sp

stm32学习笔记——串口通信

醉酒当歌 提交于 2019-11-30 18:17:18
stm32 学习笔记——串口通信 目的:利用串口收发数据 配置文件: #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" 寄存器: USART_SR :状态寄存器,第 5 位 RXNE ,收到数据可以读出时置 1 ,第 6 位 TC , 发送完成时置 1 ,第 7 位 TXE ,数据移至移位寄存器置 1 。 USART_DR :数据寄存器,高 23 位保留,低 9 位接收数据,分为发送寄存器 TDR , 和接受寄存器 RDR UASRT_BRR :波特率寄存器,高 16 位保留, 0-3 位波特率整数部分, 4-15 位波特 率小数部分。 USART_CR1 :控制寄存器,第 2 位 RE 接收使能,第 3 位 TE 发送使能,第 9 位 PS ,奇偶校验位,奇校验置 1 ,第 10 位 PCE ,校验控制使能,位 12 字长位,一个 起始位, 8 个数据位,一个停止位置 1 , n 个停止位置 0 。位 13UEUSART 使能。 结构体定义: USART 寄存器结构体 typedef struct { __IO uint16_t SR; uint16_t RESERVED0; __IO uint16_t DR; uint16_t RESERVED1; __IO

STM32F4学习笔记7——USART Part2

天涯浪子 提交于 2019-11-30 18:16:23
硬件流控制 使用 nCTS 输入和 nRTS 输出可以控制 2 个器件间的串行数据流。如图显示了在这种模式 下如何连接 2 个器件: 分别向 USART_CR3 寄存器中的 RTSE 位和 CTSE 位写入 1,可以分别使能 RTS 和 CTS 流 控制。 RTS 流控制 如果使能 RTS 流控制 (RTSE=1),只要 USART 接收器准备好接收新数据,便会将 nRTS 变 为有效(连接到低电平)。当接收寄存器已满时,会将 nRTS 变为无效,表明发送过程会在 当前帧结束后停止。下图图显示了在使能 RTS 流控制的情况下进行通信的示例。 CTS 流控制 如果使能 CTS 流控制 (CTSE=1),则发送器会在发送下一帧前检查 nCTS。如果 nCTS 有效 (连接到低电平),则会发送下一数据(假设数据已准备好发送,即 TXE=0);否则不会进 行发送。如果在发送过程中 nCTS 变为无效,则当前发送完成之后,发送器停止。 当 CTSE=1 时,只要 nCTS 发生变化,CTSIF 状态位便会由硬件自动置 1。这指示接收器是 否已准备好进行通信。如果 USART_CR3 寄存器中的 CTSIE 位置 1,则会产生中断。下图 显示了在使能 CTS 流控制的情况下进行通信的示例。 注意:停止帧的特殊行为:当使能 CTS 流后,发送器发送停止信号时将不检查 nCTS 输入状态。

stm32学习笔记-USART

给你一囗甜甜゛ 提交于 2019-11-30 18:15:43
接口通过三个引脚与其他设备连接在一起(见图248)。任何USART双向通信至少需要两个脚:接收数据输入(RX)和发送数据输出(TX)。 RX:接收数据串行输。通过过采样技术来区别数据和噪音,从而恢复数据。 TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的I/O端口配置。当发送器被激活,并且不发送数据时,TX引脚处于高电平。在单线和智能卡模式里,此I/O口被同时用于数据的发送和接收。 ● 总线在发送或接收前应处于空闲状态 ● 一个起始位 ● 一个数据字(8或9位),最低有效位在前 ● 0.5,1.5,2个的停止位,由此表明数据帧的结束 ● 使用分数波特率发生器 —— 12位整数和4位小数的表示方法。 ● 一个状态寄存器(USART_SR) ● 数据寄存器(USART_DR) ● 一个波特率寄存器(USART_BRR),12位的整数和4位小数 ● 一个智能卡模式下的保护时间寄存器(USART_GTPR) 25.6517/754 关于以上寄存器中每个位的具体定义,请参考寄存器描述第节:USART寄存器描述。 发送配置步骤: 1. 通过在USART_CR1寄存器上置位UE位来激活USART 2. 编程USART_CR1的M位来定义字长。 3. 在USART_CR2中编程停止位的位数。 4. 如果采用多缓冲器通信,配置USART_CR3中的DMA使能位(DMAT)

【计算机组成原理】中央处理器CPU

不问归期 提交于 2019-11-30 15:20:06
一、CPU的功能和基本结构 1、功能 当用计算机解决某个问题是,我们首先必须为他编写程序,程序是一个指令序列,这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据,一旦把程序装入内存器,就可以由计算机来自动完成取出指令和执行指令的任务。专门用来完成此项工作的计算机部件称为中央处理器,通常简称CPU。 虚线框就是CPU结构 CPU通过地址总线 数据总线来访问存储器或者输入输出端口。 ALU:执行运算 两个数一个来自缓存寄存器DR 一个来自累加器AC 运算结果暂时存放到累加器中 状态条件寄存器:0标志位 溢出标志位 等 缓冲寄存器DR:信息进出CPU都有在这蹲点,不论是指令还是数据进CPU都要先进缓存寄存器DR。 指令寄存器:当前正在执行的指令,这里的指令中包含操作码和地址码,将操作码送入指令译码器就知道指令是做什么的,指令译码器把翻译结果告诉操作控制器和时序产生器,他们再按照时间顺序向计算机的执行部件发出执行命令。 程序计数器:下一条将要执行指令的地址 地址寄存器:存放CPU正在访问的内存的地址,一般和地址总线直接相连 CPU的基本部分由运算器 cache和控制器三大部分组成。 二、指令的执行过程 1.指令周期的基本概念 问题:计算机读取的指令和数据都是存在存储器里面的二进制代码,计算机如歌区分这二进制代码是指令还是数据? 计算机能自动的工作

https://blog.csdn.net/xiaohe511/article/details/51385779

≡放荡痞女 提交于 2019-11-30 13:19:08
Slave FIFO 固件需要设置的相关寄存器 IFCONFIG EPxFIFOPFH/L PINFLAGSAB PORTACFG PINFLAGSCD INPKTEND FIFORESET FIFOPINPOLAR EPxCFG EPxFIFOBCH:L EPxFIFOCFG EPxAUTOINLENH:L EPxBCH:L REVCTL (bits 0 and 1 must be initialized to 1 for operation as described in this chapter) 一. CPUCS(E600)CPU控制和状态寄存器 bit b7 b6 b5 b4 b3 b2 b1 b0 name 0 0 PORTCSTB CLKSPD1 CLKSPD0 CLKINV CLKOE 8051RES r/w r r rw rw rw rw rw r default 0 0 0 0 0 0 1 0 PORTCSTB : 128 脚或 100 脚的 RD , WR 输出使能; CLKSPD[1:0] : 8051CPU 频率选择, CLKSPD[1:0] 00 01 10 11 CPU 频率 12MHz 24MHz 48MHz Reserved CLKINV : CLKOUT 反相; CLKOE : CLKOUT 输出使能; 8051RES: 位为 1 来复位 EZ

2019-05-16-日常零碎知识点

喜夏-厌秋 提交于 2019-11-30 12:19:57
版权声明:本文为 Jiawei Xu 于2019年5月16日所写,未经允许不得转载。 Linux网络编程 socketaddr socktaddr_in socketaddr_un UNIX Domain Socket,虽然网络socket也可以用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答,只是将应用层数据从一个进程拷贝到另一个进程。这是因为,IPC机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。Unix Domain Socket也提供面向流和面向数据包两种API接口,类似于TCP和UDP,但是面向消息的UNIX Domain Socket也是可靠的,消息既不会丢失也不会顺序错乱。X Window服务器和GUI程序之间就是通过UNIX Domain Socket通讯的。 使用UNIX Domain Socket的过程和网络socket十分相似,也要先调用socket()创建一个socket文件描述符,address family指定为AF_UNIX,type可以选择SOCK_DGRAM或SOCK_STREAM,protocol参数仍然指定为0即可。 UNIX Domain

一、计算机网络概论

别说谁变了你拦得住时间么 提交于 2019-11-30 07:38:27
1.计算机硬件基本组成(考点较少,了解基本组成即可,功能熟悉就行) (1)基本概述 计算机系统由硬件和软件组成。硬件由 运算器,控制器,存储器,输入输出设备 5大部件组成,这是由冯·诺依曼提出的经典计算机结构模型。 其中, 运算器和控制器 被集成在一起成为 中央处理单元-CPU 。CUP是 硬件 系统的核心,用于 数据加工处理 ,能完成各种 算数逻辑运算及控制 功能。 (2)各部件的作用如下:  控制器 :整机的指挥中心,它使计算机的各个部件自动协调工作。 运算器 :对数据信息进行处理的部件,用来进行算术运算和逻辑运算。 存储器 :存放程序和数据,是计算机实现“存储程序控制”的基础。  输入设备 :将人们熟悉的信息形式转换成计算机可以接受并识别的信息形式的设备。 输出设备 :将计算机处理的结果(二进制信息)转换成人类或其它设备可以接收和识别的信息形式的设备. (3)中央处理单元-CPU 包括运算器,控制器,寄存器组合内部总线。 1)、控制器 一般包括指令控制逻辑,时序控制逻辑,总线控制逻辑和中断控制逻辑等。 功能 (1)取指令 (2)分析指令 (3)执行指令,发出各种操作命令 (4)控制程序输入及结果输出 (5)总线管理 (6)处理异常和特殊请求 2)、运算器的功能 由算数逻辑单元、累加寄存器、数据缓冲寄存器和状态条件寄存器等组成,实现算术运算和逻辑运算