1.处理器与外部设备通信的两种方式:
并行通信
-传输原理:数据各个位同时传输。
-优点:速度快
-缺点:占用引脚资源多
串行通信
-传输原理:数据按位顺序传输。
-优点:占用引脚资源少
-缺点:速度相对较慢
2.串行通信
按照数据传送方向,分为:
单工: 数据传输只支持数据在一个方向上传输
半双工:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;
全双工: 允许数据同时在两个方向上传输,因此,全双工通信是两个 单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。
3.串行通信的通信方式
同步通信:带时钟同步信号传输。 -SPI,IIC通信接口
异步通信:不带时钟同步信号。 -UART(通用异步收发器),单总线
4.常见串行通信接口
STM32的串口通信接口:
UART:通用异步收发器
USART:通用同步异步收发器
STM32F407支持6个UART
5.UART
5.1 UART异步通信方式引脚连接方法:
-RXD:数据输入引脚。数据接受。
-TXD:数据发送引脚。数据发送。
F407开发板用USB-232实现接口转换。
5.2 UART异步通信方式引脚(STM32F407ZGT6)
5.3 UART异步通信方式特点:
全双工异步通信。
小数波特率发生器系统,提供精确的波特率。
可配置的16倍过采样或8倍过采样,因而为速度容差与时钟容差的灵活配置提供了可能。
可编程的数据字长度(8位或者9位);
可配置的停止位(支持1或者2位停止位);
可配置的使用DMA多缓冲器通信。
单独的发送器和接收器使能位。
检测标志:① 接受缓冲器 ②发送缓冲器空 ③传输结束标志
多个带标志的中断源,触发中断。
其他:校验控制,四个错误检测标志。
6.STM32串口通信过程
6.1
以数据接收过程为例:电脑通过串口调试助手发送数据,通过USB-232口将电脑TXD端连接至F407的RXD端,每次接收一位数据产生一次中断,并调用中断处理函数,判断结束标志位,若正确则将数据先存入缓存区,最后读入开发板内核。
6.2STM32串口异步通信需要定义的参数:
起始位 数据位(8位或者9位) 奇偶校验位(第9位,位8) 停止位(1,15,2位) 波特率设置(通信双方须处于同一波特率)
例如:
关键字:STM32F407 串口通信 半双工
引用地址:
STM32F407-串口通信基本原理
推荐阅读最新更新时间:2024-11-10 10:12
STM32学习笔记(6) 串口通信数据包解析
串口的数据解析代码 /** * 函数名:UART1_Handler() * 功能: 串口1的中断服务函数 * 入口参数:无 * 引脚: 无 * USART1_RX_STA:串口一的接收状态标志位 * USART1_BUFF :缓冲区(存储数据),串口长度 */ u16 USART1_RX_STA; u16 USART1_BUFF ; void USART1_IRQHandler() { u8 Res; if(USART_GetITStatus(USART1,USART_IT_RXNE) != RESET) { Res=USART_ReceiveData(USART1);
[单片机]
STM32F407的定时器1之7路PWM输出
实验现象:输出频率为10K /**************************************************************************************** *函 数 名:bsp_InitTimer1GPIO *函数功能:初始化定时器1相关IO *形 参:无 *返 回 值:无 *****************************************************************************************/ void bsp_InitTimer1GPIO(void) { GPIO_InitTypeDef GPIO_InitStru
[单片机]
【stm32f407】时钟树以及SystemInit剖析
一. 时钟树 众所周知,时钟系统是CPU的脉搏,就像人的心跳一样。所以时钟系统的重要性就不言而喻了。 STM32F4的时钟系统比较复杂,不像简单的51单片机一个系统时钟就可以解决一切。于是有人要问,采用一个系统时钟不是很简单吗?为什么STM32要有多个时钟源呢?因为首先STM32本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率,比如看门狗以及RTC只需要几十k的时钟即可。同一个电路,时钟越快功耗越大,同时抗电磁干扰能力也会越弱,所以对于较为复杂的MCU一般都是采取多时钟源的方法来解决这些问题。 首先让我们来看看STM32F4的时钟系统图 在STM32F4中,有5个最重要的时钟源,为HSI
[单片机]
基于STM32F407的图像远程采集终端
本文阐述一种基于STM32F407的图像远程采集终端,分别从终端采集硬件设计和终端采集软件设计两方面进行论述,并借助实验验证该采集终端的有效性和合理性。 1、终端采集硬件设计 系统的主体框图如图1所示,它主要由STM32F407芯片、OV7670CMOS图像传感器和上位机软件等几个重要部分组成。STM32F407是整个远程采集终端的核心,起到了承上启下的关键作用,一方面它将完成底层信号的获取和预处理,另一方面它将通过网络将采集到的彩色图像数据实时传送到上位机,本文将重点介绍这两部分的内容。 图1 系统主体框图 1.1、STM32F407与OV7670的硬件连接 在图2中,利用STM32F407的PH9~PH12、PH1
[单片机]
uart串口通信原理是什么?
UART通信协议是什么? UART作为异步串口通信协议的一种,工作原理是将传输数据的每一个字符一位一位地传输。其中每一位(bit)的意义如下: 起始位:先发出一个逻辑“0”的信号,表示传输字符开始。 数据位:紧接着起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。 奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以次来校验数据传送的正确性。 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。因为数据是在传输线上定时的,并且每一个设备有其自己的时钟,所以很可能在通信中两台设备间出现了小小的不同步。因此停止
[嵌入式]
51单片机开发的几点心得
1、 单片机 IO口上电后默认是高电平。(P1、P2、P3口内部上拉,若P0口未接上拉电阻的话,默认是高阻态) 2、单片机工作频率=晶振频率/12,即使用12MHz的晶振,实际工作频率为1MHz,一个机器周期为1us。 3、单片机常用11.0592MHz的晶振,主要是保证串口通信的同步。比如说在9600波特率下每位数据电平持续96个机器周期,因为是整数值,不会产生误差。若使用12MHz的晶振,高波特率下通信容易产生误码。 4、三极管的使用:在模拟电路中,输入为高频模拟信号时,三极管一般工作在放大模式下。在数字电路中,三极管一般作为开关用,工作在饱和模式下。 5、在单片机数据线和地址线复用的情况下必须使用锁存器,可在工作时锁
[单片机]
STM32串口通信中使用printf发送数据配置方法
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 标签: STM32 串口通信 printf方法 2011-06-29 23:29 在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。 下面就说一下使用printf需要做哪些配置。 有两种配置方法: 一、对工程属性进行配置,详细步骤如下 1、首先要在你的main 文件中 包含“stdio.h” (标准输入输出头文件)。 2、在main文件中重定义函数 如下: // 发送数据 in
[单片机]
基于LED光源的温室光环境监测与控制系统设计
0 引言 LED作为新一代光源,除了环保节能的特点外,相较于目前农业领域常用的荧光灯或高压钠灯等人工光源,具有光量可调整、光质可调整、冷却负荷低与允许提高单位面积栽培量等优点,对封闭有环控的农业生产环境,如植物组织培养室等是一种非常适合的人工光源。对温室中植物生长的光环境参数准确监测及控制非常重要,为了实现对光环境参数的准确检测及智能控制,在做了需求分析的基础上,提出并设计了一种基于LED光源的温室光环境监测与控制系统(以下简称“监测与控制系统”)设计方案。该系统能够完成对其光环境准确监测与控制。 1 监控需求分析 LED理想的工作温度通常为25℃。在该温度时,发光强度具有最大值。温度升高,则导通电流将相应地增加。过热的
[电源管理]