字符编码由于计算机只能识别0和1,文字也只能以0和1的形式在计算机里存储,所以我们需要对文字进行编码才能让计算机处理,编码的过程就是规定特定的01数字字符串来表示特定的文字,最简单的字符编码就是ASCII编码。 ASCII编码学习C语言的时候,我们知道在程序设计中使用的ASCII编码表约定了一些控制字符、英文及数字。他们在存储器中,本质也是二进制数,只是我们约定这些二进制数可以表示某些特殊意义,
一、新建工程准备Keil MDK环境搭建,包括软件下载和破解以及芯片支持包下载工程所需的文件有:启动文件——startup_stm32f10x_hd.s内核文件——core_cm3.c和core_cm3.h固件库中的寄存器映射文件——stm32f10x.h其中上面所讲的,环境搭建部分这里不再赘述,读者可以自行搭建或者百度搭建。其次,其中工程所需的文件,都可以从ST(意法半导体)官网下载固件包中获得
什么是文件系统 负责管理和存储文件信息的软件机构,在磁盘上组织文件的方法。 即使读者可能不了解文件系统,读者也一定对“文件”这个概念十分熟悉,数据在PC上是以文件的形式储存在磁盘中的,这些数据的形式一般为ASCII码或者二进制形式出现。在之前我已经写过了SPI Flash芯片W25Q64的驱动函数,我们可以非常方便的在SPI FLASH芯片上读写数据。如需要记录一系列字符串时,可以先把字符串转
SPI协议简介SPI的通信原理很简单,一般主从方式工作,这种模式通常有一个主设备和一个或者多个从设备,通常采用的是4根线,它们是MISO(数据输入,针对主机来说)、MOSI(数据输出,针对主机来说)、SCLK(时钟,主机产生)、CS/SS(片选,一般由主机发送或者直接使能,通常为低电平有效) SPI接口介绍SCK:时钟信号,由主设备产生,所以主设备SCK信号为输出模式,从设备的SCK信号为输
FSMC(灵活的静态存储器控制器)FSMC功能描述FSMC模块能够与同步或异步存储器和16位PC存储器卡接口,它的主要作用是: 将AHB传输信号转换到适当的外部设备协议满足访问外部设备的时序要求所有的外部存储器共享控制器输出的地址、数据和控制信号,每个外部设备可以通过一个唯一的片选信号加以区分,FSMC在任一时刻之访问一个外部设备。 FSMC具有下列主要功能 具有静态存储器接口的器件包括:静
SPI协议 SPI协议,多用于ADC、DA、LCD等设备与MCU之间,要求通信速率要求较高的场合,它相比于I2C来说速度快的多。一般只需要4根线,分别是MISO、MOSI、SCK、CS线等,但是,有可能只用3根。对于SPI通信协议的详细描述我之前有博客已经有说明了,有需要可以了解一下。这里重点是使用软件模拟SPI协议,实验基于野火开发板指南者F103VET6、Flash芯片W25Q64、这里模拟
跟其他外设一样, STM32提供了I2C的初始化结构体,详情如下: typedef struct{ uint32_t I2C_ClockSpeed; //设置SCL时钟频率,此值要低于400khz uint16_t I2C_Mode; //指定工作模式,可选I2C模式或者SMBUS模式 uint16_t I2C_DutyCycle;
常见的屏幕接口有:SPI、8080、RGB、MIPI-SDI、LVDS等8080接口使用这种接口的屏幕一般是屏幕自带了驱动芯片,比如ILI9488、ILI9341、SSD1963等 。驱动芯片里面自带了显存,MCU只需要把显示数据传给驱动芯片,驱动芯片会把数据保存到显存中,最后再把显存中的数据显示到屏幕上。 信号线LCD_DB[15:0];数据信号 LCD_RD:读数据信号,低电平有效
ADC简介 12位ADC是一种逐次逼近型模拟数字转换器,它有多达18个通道,可以测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行.ADC的结果可以是左对齐或者是右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阈值。 ADC的输入时钟不得超过14MHZ,它是由PCLK2经分频产生。 ADC主要特征12
存储器种类 存储器是计算机结构的重要组成部分。存储器是用来存储程序代码和数据的部件,有了存储器计算机才具有记忆功能。基本的存储器种类见图基本存储器种类。 存储器按其存储介质特性主要分为“易失性存储器”和“非易失性存储器”两大类。其中的“易失性/非易失”是指存储器断电之后,它存储的数据内容是否会丢失的特性。由于一般易失性存储器存取速度快,而非易失性存储器可长期保存数据,它们在计算机中占据着非
I2C总线的概念 I²C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980年代初设计的,方便了主板、嵌入式系统或手机与周边设备组件之间的通讯。由于其简单性,它被广泛用于微控制器与传感器阵列,显示器,IoT设备,EEPROM等之间的通信。I2C总线支持任何IC生产过程(NMOS、CMOS、双极性)。两线——串
目录 SDIO简介 SD卡物理结构 SDIO总线 总线拓扑 总线协议 命令 命令格式 命令类型 命令描述 响应 SD卡的操作模式及切换 SD卡的操作模式 卡识别模式 数据传输模式 STM32的SDIO功能框图 控制单元 命令路径 数据路径 数据FIFO 适配器寄存器 SDOI初始化结构体 SDIO命令初始化结构体 SDIO数据初始化结构体
目录 显示器简介 液晶显示器 显示器的基本参数 液晶控制原理 ILI9341液晶控制器简介 液晶屏的信号线及8080时序 使用STM32的FSMC模拟8080接口时序 FSMC简介 存储器控制器 时钟控制逻辑 FSMC模拟8080时序 FSMC控制液晶屏软件设计 编程要点 NOR FLASH时序结构体 FSMC初始化结构体 ILI9341的驱动代码和ST7789V
目录 先说串口 SPI通讯协议 SPI特性: 时钟频率 时钟配置总结 多从机模式 第一种方法:多NSS 第二种方法:菊花链 SPI的优缺点 优点: 缺点 先说串口 因为UART没有时钟信号,无法控制何时发送数据,也无法保证双方按照完全相同的速度接收数据。因此,双方以不同的速度进行数据接收和发送,就会出现问题。 如果要解决这个问题,UART为每一个字节添加额
目录 一、通信的本质 二、信息表示 2.1 0/1信号表示 2.1.1 电平信号 2.1.2 差分信号 2.2 信号解析 2.2.1 同步通信 2.2.2 异步通信 2.2.3 小结 2.3 通信协议 2.3.1 传输方向 2.3.2 常见通信协议 三、缓存方式 一、通信的本质 通信通信,说白的就是信息互通。人跟人间的信息互通、机器跟机器间的信息互通、机
目录 软件模拟I2C概述 软件模拟I2C程序 I2C延时函数 I2C对应的GPIO配置和宏定义 I2C起始信号 I2C停止信号 I2C应答信号相关时序图 I2C等待应答信号 I2C应答信号 I2C非应答信号 I2C的GPIO初始化配置 I2C发送数据(根据数据有效性) I2C读取数据 检测I2C总线设备 I2C读写EEPROM实验 EEPROM宏定义
目录 1、按照数据传送的方向,分为: 2、按照通信方式,分为: STM32串口通信基础 串口通信过程 UART(USART)框图 串口通信实验 编程要点 代码分析 通信接口背景知识 设备之间的通信方式 一般情况下,设备之间的通信方式可以分成并行通信和串行通信两种。它们的区别是: 串行通信的分类 1、按照数据传送的方向,分为: 单工:数据传输只支持数据在一个方向上
目录 一、SysTick简介 二、SysTick寄存器介绍 三、SysTick定时实验 SysTick配置函数 配置SysTick中断优先级 系统异常优先级字段 SysTick初始化函数 SysTick中断时间的计算 SysTick定时时间的计算 SysTick定时函数 SysTick 中断服务函数 主函数代码: 一、SysTick简介 SysTick——系统定
前言:本文将从”这是什么?“ ”为什么需要它?“ “如何配置操作它”三个角度展开讨论分析 目录 中断简介 抢占优先级和子优先级 中断分组 配置要点 EXTI EXTI框图讲解 信号产生过程 编程要点 中断简介 中断,即机器运行过程中出现某些意外情况,需要机器停止正在运行的程序并转入处理新情况的程序,处理完毕之后又返回原来被暂停的程序继续运行。 理解中断 想象一个
片内外设就是片上外设,同一种意思不同说法而已。 片内外设和片外外设的区别: 片内、外设是两个概念,片内指做成芯片的集成电路内部,简称片内,片外同理显而易见;外设是外部设备的简称,是指集成电路芯片外部的设备。集成电路芯片与外部设备的连接一般需要专门的接口电路和总线的连接(包括控制总线路,地址总线和数据总线)。由于大规模集成电路的技术发展得很快,现在许多芯片在制造得时候已经能够将部分接口电路和总线
目录 1、创建工作空间并初始化2、进入src创建ROS包并添加依赖HelloWorld(C++版)3、进入ROS包的 src目录编辑源文件 4、编辑ROS包下的Cmakelist.txt文件5、进入工作空间目录并编译6、执行 HelloWorld(Python版)3、进入ROS包添加scripts目录并编辑python文件 4、为Python文件添加可执行权限5、编辑ROS包下的CmakeLis
服务通信是ROS中一种及其常用的通信模式,服务通信是基于请求响应模式的,是一种应答机制,也即一个节点A向另一个节点B发送请求,B接收处理请求并产生响应返回给A,比如如下场景: 机器人在巡逻过程中,控制系统分析传感器数据发现可疑物体或人...此时需要拍摄照片留存。 在上述场景中,就用到了服务通信。 一个节点需要向相机节点发送拍照请求, 相机节点处理请求,并返回处理结果。 与上述应用类似的,服
ROS——话题通信 话题通信是ROS中使用频率最高的一种通信模式,话题通信是基于发布订阅模式的,也即:一个节点发布消息,另一个节点订阅该消息。话题通信的应用场景也极其广泛,比如下面一个场景: 机器人在导航的时候,使用的传感器是雷达,机器人会采集激光雷达感知到信息并计算,然后生成运动控制信息驱动机器人底盘运动。 在上述场景中,就不止一次使用到了话题通信 以激光雷达信息的采集为例,在R
在模型实现中ROS Master不需要实现,而连接建立也已经被封装了,需要关注的关键点有三个: 发布方 接收方 数据(此处为普通文本) 流程: 编写发布方实现 编写订阅方实现 编写配置文件 编译并执行 1、发布方 /* 需求: 实现基本的话题通信,一方发布数据,一方接收数据, 实现的关键点: 1.发送方
目录 1、ROS的结构和通信机制ROS结构ROS常用命令ROS工作空间文件结构工作空间 1、ROS的结构和通信机制 ROS结构 ROS中有一些很重要的概念,节点,节点管理器、工作空间、功能包 节点(node) 在机器人系统中,需要同时实现多个功能,例如我想让机器人实现跟踪射击,那么可以拆分成,镜头跟踪,调整枪的位置,开枪射击。那么这里需要实现三个节点,每一个节点实现一个功能,每
目录 自定义头文件的调用头文件可执行文件配置文件自定义源文件的调用头文件源文件可执行文件 配置文件头文件与源文件相关配置可执行文件配置 本文主要介绍ROS的C++实现,如何使用头文件和源文件的方式封装代码,具体内容如下: 设置头文件,可执行文件作为源文件 分别设置头文件,源文件与可执行文件 在ROS中关于头文件的使用,核心内容在于CMakeLists.txt文件的配置
机器人是一种高复杂的系统性实现,在机器人上可能集成各种传感器(雷达、摄像头、GPS...)以及运动控制实现,为了解耦合,在ROS中的每个功能节点都是一个单独的进程,每一个进程都是独立运行的,更确切地讲,ROS是进程(也成为Node)的分布式框架。因为这些进程甚至还可分布于不同主机,不同主机协同工作,从而分散计算压力,不过随之也有一个问题:不同进程之间是如何进行通信的?也即不同进程间如何实现数据交互
目录 ROS 元功能包 1、新建launch文件 launch文件标签之node launch文件标签之include launch文件标签之param launch文件标签之rosparam launch文件标签之group launch文件标签之arg ROS工作空间覆盖 ROS是多进程(节点)的分布式框架,一个完整的ROS系统实现: 可能包含多台主机 每台主机又有
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信