基于ARM的嵌入式系统开发6_第1页
基于ARM的嵌入式系统开发6_第2页
基于ARM的嵌入式系统开发6_第3页
基于ARM的嵌入式系统开发6_第4页
基于ARM的嵌入式系统开发6_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第六章I/O接口电路6.4stm32串口编程2第六章I/O接口电路3STM32单片机的

USARTx串口编程步骤1

STM32单片机的USARTx串口和管脚2

STM32单片机的USARTx串口配置6.4stm32串口编程3第六章I/O接口电路USART:UniversalSynchronous/AsynchronousReceiver/Transmitter,

通用同步/异步接收和发送器USART?4第六章I/O接口电路ARM9S3C2410:拥有3个UART(通用异步接收和发送器)Cortex-M3STM32单片机:拥有3个USART(通用同步/异步接收和发送器)MCS51单片机:拥有1个UART(通用异步接收和发送器)比较:5第六章I/O接口电路异步串行通信数据格式同步字符CRC字符开始终止数据块同步通信数据格式6第六章I/O接口电路7第六章I/O接口电路8第六章I/O接口电路9第六章I/O接口电路10第六章I/O接口电路每个USART口:共有7个设置寄存器①一个状态寄存器(USART_SR)②一个数据寄存器(USART_DR):它是由两个寄存器组成的,一个给发送用(发送寄存器

TDR),一个给接收用(接收寄存器

RDR)③一个波特率寄存器(USART_BRR)④一个控制寄存器1(USART_CR1)⑤一个控制寄存器2(USART_CR2)⑥一个控制寄存器3(USART_CR3)

⑦一个保护时间和预分频寄存器(USART_GTPR)11第六章I/O接口电路12第六章I/O接口电路在MCS-51单片机中,数据缓冲器SBUF:实际是由发送SBUF和接收SBUF组成。发送SBUF和接收SBUF共用一个地址99H 。 1)发送SBUF存放待发送的8位数据,写入SBUF将同时启动发送。 发送指令: MOV SBUF,A2)接收SBUF存放已接收成功的8位数据,供CPU读取。 读取串行口接收数据指令:

MOVA,SBUF13第六章I/O接口电路/*----------------UniversalSynchronousAsynchronousReceiverTransmitter--*/typedefstruct{vu16SR;u16RESERVED0;vu16DR;u16RESERVED1;vu16BRR;u16RESERVED2;vu16CR1;u16RESERVED3;vu16CR2;u16RESERVED4;vu16CR3;u16RESERVED5;vu16GTPR;u16RESERVED6;}USART_TypeDef;//用结构体USART_TypeDef定义USARTx串口,(即定义

USARTx串口的7个设置寄存器)14第六章I/O接口电路15第六章I/O接口电路MCS-51单片机的串行通讯:适用于传送距离不大于15m,速度不高于20kb/s的本地设备之间通信的场合。STM32单片机的USART串口:采用分数波特率发生器,串行发送、接收数据的最高速率=72M/16=4.5Mb/s16第六章I/O接口电路MCS-51单片机串行口结构示意图17第六章I/O接口电路4、在使用USART串口时,首先要使能该外设对应的时钟1、USARTx串口定义

2、USART_InitTypeDef初始化串口参数定义3、USART_Init初始化串口定义stm32串口配置

18第六章I/O接口电路1、编程时,USARTx串口的具体配置是从USARTx寄存器组开始。首先,用结构体USART_TypeDef

定义

USARTx寄存器组:19第六章I/O接口电路在文件“stm32f10x_map.h”中,定义如下:/*----------------UniversalSynchronousAsynchronousReceiverTransmitter--*/typedefstruct{vu16SR;u16RESERVED0;vu16DR;u16RESERVED1;vu16BRR;u16RESERVED2;vu16CR1;u16RESERVED3;vu16CR2;u16RESERVED4;vu16CR3;u16RESERVED5;vu16GTPR;u16RESERVED6;}USART_TypeDef;//用结构体USART_TypeDef定义USARTx串口,

//或称用结构体USART_TypeDef定义

USARTx寄存器组USARTx串口的7个设置寄存器20第六章I/O接口电路#defineUSART1_BASE(APB2PERIPH_BASE+0x3800)#defineUSART2_BASE(APB1PERIPH_BASE+0x4400)#defineUSART3_BASE(APB1PERIPH_BASE+0x4800)USARTx寄存器组的首地址:/*Peripheralbaseaddressinthebit-bandregion*/#definePERIPH_BASE((u32)0x40000000)/*Peripheralmemorymap*/#defineAPB1PERIPH_BASEPERIPH_BASE#defineAPB2PERIPH_BASE(PERIPH_BASE+0x10000)#defineAHBPERIPH_BASE(PERIPH_BASE+0x20000)0x400148000x400138000x4001440021第六章I/O接口电路#ifdef_USART1#defineUSART1((USART_TypeDef*)USART1_BASE)#endif/*_USART1*/#ifdef_USART2#defineUSART2((USART_TypeDef*)USART2_BASE)#endif/*_USART2*/#ifdef_USART3#defineUSART3((USART_TypeDef*)USART3_BASE)#endif/*_USART3*/22第六章I/O接口电路2、USART_InitTypeDef初始化串口参数定义/*USARTInitStructuredefinition*/typedefstruct{u32USART_BaudRate;u16USART_WordLength;u16USART_StopBits;u16USART_Parity;u16USART_Mode;u16USART_HardwareFlowControl;}USART_InitTypeDef;//用于初始化USARTx串口的参数(包括波特率、字长—即数据位、停止位、奇偶效验位、工作模式、硬件流控制)在文件“stm32f10x_usart.h”中,定义:23第六章I/O接口电路描述了结构体USART_InitTypeDef

在同步和异步模式下使用的不同成员。24第六章I/O接口电路比较结构体USART_TypeDef

和USART_InitTypeDef:25第六章I/O接口电路功能:根据USART_InitTypeDef中指定的参数,初始化外设USARTx串口3、USART_Init初始化串口定义26第六章I/O接口电路

USART_Init(USART1,&USART_InitStructure);

//初始化USARTx串口例如,USART_InitTypeDefUSART_InitStructure;//定义结构体变量USART_InitStructure,用于初始化外设USARTx串口的参数27第六章I/O接口电路/********************************************************************************FunctionName:USART_Init*Description:InitializestheUSARTxperipheralaccordingtothespecified*parametersintheUSART_InitStruct.*Input:-USARTx:SelecttheUSARTortheUARTperipheral.*Thisparametercanbeoneofthefollowingvalues:*-USART1,USART2,USART3,UART4orUART5.*-USART_InitStruct:pointertoaUSART_InitTypeDefstructure*thatcontainstheconfigurationinformationforthe*specifiedUSARTperipheral.*Output:None*Return:None*******************************************************************************/voidUSART_Init(USART_TypeDef*USARTx,USART_InitTypeDef*USART_InitStruct){u32tmpreg=0x00,apbclock=0x00;u32integerdivider=0x00;u32fractionaldivider=0x00;在文件“stm32f10x_usart.c”中,定义:28第六章I/O接口电路

STM32的SPI接口

29第六章I/O接口电路SPI是一种全双工的同步串行接口,利用3条线完成两个芯片之间的双工高速通信。两条数据线用于收发数据,一条时钟线用于同步。一个SPI总线可以连接多个主机和多个从机。在同一时刻只允许一个主机操作总线,并且同时只能与一个从机通信。主机控制数据的传输过程。串行时钟由主机产生,当主机发送一字节数据(通过主出从入MOSI引脚)的同时,从机返回一字节数据(通过主入从出MISO引脚)。30第六章I/O接口电路SPI通信原理31第六章I/O接口电路SPI总线可在软件的控制下构成各种简单的或复杂的系统:1个主MCU和几个从MCU几个从MCU相互连接构成多主机系统(分布式系统)1个主MCU和1个或几个从I/O设备<常用>32第六章I/O接口电路主机模式MASTER:当器件作为主机时,使用一个IO引脚拉低相应从机的选择引脚(NSS),传输的起始由主机发送数据来启动,时钟(SCK)信号由主机产生。通过MOSI发送数据,同时通过MISO引脚接收从机发出的数据。从机模式SLAVE:当器件作为从机时,传输在从机选择引脚(NSS)被主机拉低后开始,接收主机输出的时钟信号,在读取主机数据的同时通过MISO引脚输出数据。33第六章I/O接口电路34第六章I/O接口电路数据传输格式:通常是高位(MSB)在前,低位(LSB)在后。一些增强型MCU中可以通过软件设置高位在前或低位在前。下面以8位数据的传输为例,看一下4种不同数据传输格式的时序。首先介绍两个概念:时钟极性:表示时钟信号在空闲时是高电平还是低电平。时钟相位:决定数据是在SCK的上升沿采样还是在SCK的结束沿采样。35第六章I/O接口电路数据帧

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论