目录硬件实现细节软件实现细节UART传输的过程奇偶校验stm32单片机上代码实现HAL库开发标准库开发UART是通用异步串行接口(UniversalAsynchronousReceiver/Transmitter)的缩写。它是一种用于串行异步全双工通信的通信协议,常用于将计算机和外部设备(如传感器、显示器、模块等)进行串行数据传输。UART使用一对数据线(一条用于发送数据,一条用于接收数据)来进行通信,通信过程中不需要时钟信号,所以称为异步。发送和接收的数据以字节为单位进行传输,并通过起始位、数据位、校验位和停止位进行格式化,需要注意的是主从之间的接收和发射端口要反接,就是主机TX端要接从机R
目录一、引言二、概览三、实现HWC3.1为什么是HWC?3.2HWC的支持需求3.3HWC的实现思路3.4HWC的基元3.5HIDL接口3.6函数指针3.7图层和屏幕句柄3.8屏幕合成操作3.9多个屏幕3.10虚拟屏幕合成3.10.1模式3.10.2输出格式3.11同步fence3.12热插拔处理3.12.1概念理解3.12.2更新显示功能:3.12.3处理显示功能的更改:3.12.4常见的连接场景处理3.12.5使用顺序配置ID来防止竞争条件3.13客户端帧缓冲区管理3.13.1分辨率切换期间的帧缓冲区管理四、Layersanddisplays4.1Displays4.2虚拟屏幕五、VSYN
常用通讯协议随笔这里主要对工作学习中常见常用的通信协议进行一个整理,在需要的时候可以进行回顾,内容主要根据创客学院,所做的学习笔记加上一些比较好理解的话语,内容如有错误还请各大佬批评指正。通讯基础并行通讯:数据线有8条,就代表总线传输数据时一次可传输8位数据;串行通讯:数据线只有一条,需要一个一个位逐次传输;UART即通用异步收发器,是一种通用的串行,异步通讯总线;总线有两天数据线,可以实现全双工的发送和接收;在嵌入式系统中常用与主机与辅助设备之间的通信波特率:用于描述UART通信时的通信速度,其单位为bps(bitpersecond)即每秒钟传送的bit的数量;起始位(必须有):为低电平,代
常用通讯协议随笔这里主要对工作学习中常见常用的通信协议进行一个整理,在需要的时候可以进行回顾,内容主要根据创客学院,所做的学习笔记加上一些比较好理解的话语,内容如有错误还请各大佬批评指正。通讯基础并行通讯:数据线有8条,就代表总线传输数据时一次可传输8位数据;串行通讯:数据线只有一条,需要一个一个位逐次传输;UART即通用异步收发器,是一种通用的串行,异步通讯总线;总线有两天数据线,可以实现全双工的发送和接收;在嵌入式系统中常用与主机与辅助设备之间的通信波特率:用于描述UART通信时的通信速度,其单位为bps(bitpersecond)即每秒钟传送的bit的数量;起始位(必须有):为低电平,代
写在前面:本节我们学习STM32F1串口,说实话,对于一个初学者来说,在学习这节内容的时候,牵涉的一些知识使我也很困惑。特别是利用HAL库的中断回调机制。至此,对于有些内容我依旧是感到迷惑,还是希望多看,多试尽力的有一个好的理解。目录一、数据通信的基本概念1.1串并行通信1.2单工、半双工与全双工通信1.3同步、异步通信 1.4通信速率 1.5常见的串行通信接口二、串行通信接口(RS-232)三、STM32的USART 3.1USART简介3.2USART框图 3.3USART寄存器 3.3.1控制寄存器1(USART_CR1)3.3.2控制寄存器2(USART_CR2)3.3.3控制寄存器3
一、简介1.FreeRTOS简介 RTOS全称为:RealTimeOS,就是实时操作系统,强调的是:实时性。而Free显而易见体现的是其免费性。总的来说这是一个免费的嵌入式实时操作系统。 其特点是:免费开源、可剪裁(独立性强,适应范围广)、简单、优先级/任务不限(但是受到不同开发环境和硬件的限制,一般受限)、支持三种方式的任务调度。 与裸机的区别:裸机的应用程序整体来看放在整个大循环里,很多时候资源浪费即“空等待”;而RTOS是多个优先级相同的任务每个任务执行一个时间片(时间长度可以调节),来回切换,最终效果是所有优先级相同的任务同时进行,而且有任务被“阻塞”时,会释放cpu资源。2.任
在调试HAL库下的CAN双机(双F103ZET6)通信时,阻塞轮询接收完全正常,但是中断接收没有反应。翻看了GL的烧脑之路总结(一):Cubemx创建CAN通信工程,无法进入CAN中断的原因这篇文章以后,核实自己的硬件电路没有问题,于是对自己的工程文件进行整理,把①HAL_CAN_ConfigFilter(CAN_HandleTypeDef*hcan,CAN_FilterTypeDef*sFilterConfig)//配置can②HAL_CAN_Start(CAN_HandleTypeDef*hcan)//开始can③HAL_CAN_ActivateNotification(CAN_Handl
1.通信基础概念此篇为学习正点原子FPGA课程总结串行/并行通信串行通信即收发双方通过单根线进行数据传输,发送方有并转串逻辑,接收方有串转并逻辑。优点是占用IO少,成本低,缺点是速率低。并行通信一次用多根数据线传输。优点是速度快,缺点是占用IO多,成本高。单工/半双工/全双工通信单工通信:只能沿一个方向通信,如遥控器半双工通信:可以双方通信,不能同时通信。如传呼机全双工通信:可以双方同时通信,如电话同步/异步通信同步通信:收发双方有一根时钟线进行数据同步异步通信:没有这根时钟线,靠固定的数据格式、比特率等来同步2.UARTUART(UniversalAsynchronousReceiver-T
系列文章目录【STM32】HAL库新建MDK工程【STM32】HAL库定时器中断【STM32】HAL库PWM驱动LED呼吸灯文章目录系列文章目录前言一、SG90舵机二、STM32CubeMX设置三、代码前言使用按键控制PWM,驱动舵机一、SG90舵机舵机的控制一般需要一个20ms左右的时基脉冲,脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度伺服为例,那么对应的控制关系是这样的:高电平时间旋转角度0.5ms0度1.0ms45度1.5ms90度2.0ms135度2.5ms180度计数器自动重装值为ARR,0.5ms的计数次数为h。ARR/20=h/0.5,h=
硬件设备STM32F103ZET3开发板STLink功能实现发送ONLED亮发送OFFLED灭其他指令串口发送error实验过程波特率设置为115200、数据位8、奇偶校验位None、停止位1这里我采用的是中断的方式去实现串口控制LED,因此NVIC需要开启在usart.c文件中添加重定义后的函数/*USERCODEBEGIN0*/#include"stdio.h"intfputc(intch,FILE*f){HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,HAL_MAX_DELAY);returnch;}intfgetc(FILE*f){uint8_tch