一、串并行概念
1-1 概念
按数据传送的方式,通讯可分为串行通讯与并行通讯。
串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。
并行通讯一般是指使用 8、 16、 32 及 64 根或更多的数据线进行传输的通讯方式。
并行通讯就像多个车道的公路,可以同时传输多个数据位的数据,而串行通讯就像单个车道的公路,同一时刻只能传输一个数据位的数据。
常见串行通信:USART、I2C、SPI
常见并行通信:SDIO(4位)、FSMC(16位)
1-2 串行与并行通信的特性对比
二、 全双工、半双工及单工通讯
USART、SPI均可为半/全全双工、串行、同步方式;I2C则为半双工
三、同步与异步
在同步通讯中,数据信号所传输的内容绝大部分就是有效数据,而异步通讯中会包含有帧的各种标识符,所以同步通讯的效率更高,但是同步通讯双方的时钟允许误差较小,而异步通讯双方的时钟允许误差较大。
3-1 数据同步通讯
3-2 数据异步通讯
四、通信的速率
4-1 Bitrate—比特率
每秒钟传输的二进制位数,单位为比特每秒(bit/s)(I2C、SPI常用)
4-2 Baudrate—波特率
表示每秒钟传输的码元个数(USART常用)
当码元表示信息较少时,即当表示二进制数与码元数相等时,波特率等于比特率
当码元表示信息多时,无法用单个二进制位表示一个码元,波特率不等于比特率
关键字:STM32 通信 数据传送
引用地址:
STM32笔记(八)---通信概念
推荐阅读最新更新时间:2024-11-12 17:16
STM32单片机学习(9) LCD1602显示屏输出实验
核心代码由kingsraywii提供,本文作者对其进行整合、更详细地注释和部分代码改进, 添加了芯片ID获取、字符串输出和printf重定向输出功能 注:使用普中科技开发板测试时,需要拔掉Boot1插口 接5V电压,重启 /* * * 软件功能: LCD1602实验(软件延时方式) * */ #include stm32f10x.h #include delay.h #include stdio.h /* 定义宏变量 lcd_RS = data/command(H/L) 数据/命令操作 lcd_RW = read/write(H/L) 读写操作 lcd_Enable 使能操作 lcd_GPIO lcd1602接
[单片机]
STM32 USB学习笔记7
主机环境:Windows 7 SP1 开发环境:MDK5.14 目标板:STM32F103C8T6 开发库:STM32F1Cube库和STM32_USB_Device_Library 现在来分析一下USB器件库中核心文件usbd_ioreq,相对于usbd_ctlreq来说usbd_ioreq文件的代码量要小一些。该文件的主要作用是为控制端点提供IO请求API,更准确来说是为默认的控制端点0提供的API,该文件只有7个函数体,首先看第一个函数发送数据函数 /** * @brief USBD_CtlSendData * send data on the ctl pipe * @param pdev: d
[单片机]
STM32—时钟树(结合系统时钟函数理解)
时钟树的概念: 我们可以把MCU的运行比作人体的运行一样,人最重要的是什么?是心跳! 心脏的周期性收缩将血液泵向身体各处。心脏对于人体好比时钟对于MCU,微控制器(MCU)的运行要靠周期性的时钟脉冲来驱动,而这个脉冲的始源往往是由外部晶体振荡器提供时钟输入,最终转换为多个外部设备的周期性运作。这种时钟“能量”的传递路径犹如大树的养分由主干流向个分支,因此称为时钟树。 STM32时钟: 在STM32中每个外设都有其单独的时钟,在使用某个外设之前必须打开该外设的时钟 ,为什么要这么麻烦来设置每一个外设的时钟而不是将所有外设的时钟统一打开?因为STM32的外设繁多,外设的运作所需要的最佳时钟各不相同,如果所有时钟同时运行会给MCU带
[单片机]
STM32 中断函数SysTick_Handler理解
目的 滴答定时器整理(STM32F103)。用了一段时间的滴答定时器,突然忘记其中配置方法,重新翻阅手册及博文,在此记录备忘。 SysTick的重装寄存器决定了定时器频率,若SysTick的时钟源是72M, SystemFrequency = 72000000Hz //1ms时基 //HCLK_Frequency = 72000000Hz; //#define OS_TICKS_PER_SEC 1000 SysTick_SetReload((u32)RCC_Clocks.HCLK_Frequency / OS_TICKS_PER_SEC); 时钟树 寄存器 寄存器名称和地址 STK_CSR, 0x
[单片机]
STM32 开发板入门教程 (三) 系统时钟 SysTick
(一) 背景介绍 在传统的嵌入式系统软件按中通常实现 Delay(N) 函数的方法为: for(i = 0; i = x; i ++); x --- 对应于 对应于 N 毫秒的循环值 对于STM32系列微处理器来说,执行一条指令只有几十个 ns,进行 for 循环时,要实现 N 毫秒的 x 值非常大,而且由于系统频率的宽广,很难计算出延时 N 毫秒的精确值。针对 STM32 微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用 Delay(N)。 (二) STM32 SysTick 介绍 Cortex-M3 的内核中包含一个 SysTick 时钟。SysTick 为一个 24 位递减计
[单片机]
STM32 串口发送数据(发送一个字节,以及数组)
#include usart1.h //#include //加载MDK 自带的 C 函数 D:KeilC51INC //串口1 配置 void USART1_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; //定义结构体 // 结构体内容在stm32f10x_gpio.h 101行 // 见库函数 P125页 USART_InitTypeDef USART_InitStructure; //定义结构体 // 结构体内容在stm32f10x_usart.h 76行 // 库
[单片机]
使用 STM32 缓存来优化性能与功率效率
本应用笔记描述了意法半导体开发的首款指令缓存(ICACHE)和数据缓存(DCACHE)。 在 Arm Cortex-M33 处理器的 AHB 总线中引入的 ICACHE 和 DCACHE 嵌入到下表中列出的 STM32 微控制器(MCU)中。 这些缓存使用户从内部和外部存储器提取指令和数据时或在用于外部存储器的数据流量时提高应用性能并降低功耗。本文档提供了典型示例,以强调 ICACHE 和 DCACHE 功能,并便于配置 1.ICACHE 和 DCACHE 概述 本节概述了嵌入在基于 STM32 Arm Cortex内核的微控制器中的 ICACHE 和 DCACHE 接口。详细介绍了 ICACHE 和
[单片机]
这8种STM32中GPIO工作模式,你都知道吗?
一、推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。 推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。 二、开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。开漏形式的电路有以下几个特点: 1、利用外部电
[单片机]