版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CKS32F103微控制器教学课件08USART串行通信什么是串行通信?串行通信(SerialCommunication)是一种将数据按位(bit)顺序在一条信号线上进行传输的通信方式,它与并行通信是数据传输的两种基本方式。并行通信(Parallel)•原理:每一位数据通过独立线路同时传输,如8位数据需8条数据线。•优势:传输速度极快,适合近距离高速场景。•劣势:占用大量引脚,成本高,信号干扰强,不适合长距离串行通信(Serial)•原理:所有数据位依次通过同一条线路传输,无需多线并行•优势:占用引脚极少(2-3根),成本低,抗干扰强,支持长距离传输。•劣势:单位时间传输数据量少于并行通信。串行通信8.1.1传输信道及数据帧格式8.1串行通信相关概念1.传输信道信道指发送端与接收端之间用于信息传递的物理媒介或逻辑路径串行通信的传输信道可以分为单工、半双工及全双工三种单工:单工通信指数据只能单方向传输,因此只占用一个信道。如广播等半双工:半双工通信指通信双方可双向传输但不能同时进行,即双方在一条信道上交替进行数据传输。全双工:全双工通信指通信双方可同时进行数据收发的工作方式。一般情况下全双工的通信信道必须是双向信道。8.1.1传输信道及数据帧格式8.1串行通信相关概念2.数据帧格式数据帧:是数据组织与传输的基本单位。通常包含以下基本要素:帧头:标识数据帧的开始,可能包含同步字符、地址信息等。数据字段:实际要传输的有效数据,如传感器读数、控制指令等。控制字段:包含协议相关的控制信息,如帧类型、优先级等。校验字段:用于检测数据是否发生传输错误,如CRC校验、奇偶校验等。帧尾:标识数据帧的结束,可能包含结束字符或校验码。数据解析:指接收方根据预设的规则或协议,将接收到的原始数据转换为可理解、可应用的信息的过程。8.1.2同步通信和异步通信8.1串行通信相关概念1.同步通信(Synchronous)✦核心特点:需要专门的时钟信号线(CLK)来同步收发双方的操作。时钟由主设备提供,从设备跟随采样,传输速率快、效率高。✦传输原理:无需起始位和停止位,数据连续成块传输。在时钟信号的上升沿或下降沿触发采样,将多位数据同步传输,抗干扰能力更强。✦典型代表:SPI、I2C2.异步通信(Asynchronous)✦核心特点:无需时钟线进行同步,通信双方需提前约定相同的波特率。硬件连接简单,适合长距离、低速率场景。✦传输原理:数据以“帧”为单位进行封装传输。每一帧包含:起始位(1位)、数据位(5-8位)、校验位(可选)、停止位(1-2位)。依靠起始/停止位标识数据边界。✦典型代表:UART、USART|常见串行通信接口对比UART通信方式:异步通信(无时钟线)信号引脚:TX(发送),RX(接收)通信特性:全双工,点对点连接典型应用:MCU与PC调试、GPS模块SPI通信方式:同步通信(SCK时钟线)信号引脚:MOSI(主出),MISO(主入)通信特性:高速全双工,一主多从典型应用:Flash存储、高速ADC、LCDI2C(IIC)通信方式:同步通信(SCL时钟线)信号引脚:SDA(双向数据线,仅需两线)通信特性:半双工,一主多从,地址寻址典型应用:EEPROM、温湿度传感器、RTC8.1串行通信相关概念8.1.2同步通信和异步通信8.1.1传输信道及数据帧格式8.1串行通信相关概念UART:UniversalAsynchronousReceiver/Transmitter通用异步收发器
USART:UniversalSynchronous/AsynchronousReceiver/Transmitter通用同步/异步收发器
UART只能异步通信;USART既能异步(兼容UART),又能同步通信,USART是UART的升级版8.1.2同步通信和异步通信8.1串行通信相关概念2.异步通信(Asynchronous)波特率:表示单位时间内传输的信号码元数量。串行通信中信道上传输的每一位信号必须保持固定的持续时间,以便接收端能及时采样。这个持续时间由波特率决定,因此波特率实际上定义了发送方与接收方的数据采样节奏嵌入式系统中最常用波特率:115200bps实际应用中需要综合考虑传输介质、距离、数据量以及抗干扰要求等,以便选择合适的波特率8.1.2同步通信和异步通信8.1串行通信相关概念2.异步通信(Asynchronous)2)异步通信:UART
帧结构异步通信的数据以“帧(Frame)”为基本单位进行传输,每一帧信号包含以下五个核心部分:01.空闲位(Idle):数据线保持高电平,代表当前无数据传输。02.起始位(Start):发送一个低电平位,作为一帧数据传输的起始标志。03.数据位(Data):承载实际需要传输的信息,通常为5~8位。04.校验位(Parity):通过奇/偶校验实现简单的传输错误检测,可选。05.停止位(Stop):1~2个高电平位,标志一帧数据传输的结束。8.1.2同步通信和异步通信8.1串行通信相关概念2.异步通信(Asynchronous)2)异步通信:UART
帧结构UART帧结构时序波形💡同步逻辑:接收方通过检测“起始位”的下降沿来实现时钟同步,并依据约定的波特率来精确采样后续数据。8.1.2同步通信和异步通信8.1串行通信相关概念2.异步通信(Asynchronous)2)异步通信:UART
帧结构UART帧结构时序波形💡同步逻辑:接收方通过检测“起始位”的下降沿来实现时钟同步,并依据约定的波特率来精确采样后续数据8.1.3RS232C的物理接口及电气特性物理接口:RS232C标准9芯引脚连接器编号名称引脚描述1DCD接收线路信号检测,输入。是数据通信设备DCE送给DTE的线路载波检测线2RXD接收数据,输入3TXD发送数据,输出4DTR数据终端准备就绪,输出。如果该线处于接通状态,DTE通知DCE,DTE已经作好了发送或接收数据的准备5GND地6DSR数据通信设备准备就绪,输入。反映本端数据通信设备当前的状态7RTS请求发送,输出。DTE向DCE提出发送要求的请求线8CTS准许发送,输入。DCE对DTE提出的发送请求作出的响应信号9RI振铃检测,输入。当DCE检测到线路上有振铃信号时,将RI线接通传给DTE,在DTE中常作为中断请求信号8.1.3RS232C的物理接口及电气特性2.电气性能规定TXD和RXD线RS232C的TXD和RXD线采用负逻辑,与TTL/CMOS电平不兼容,需转换。逻辑1:-3V~-15V,通常为-12V;逻辑0:+3V~+15V,通常为+12V2)联络控制信号线联络控制信号线如RTS、CTS、DSR、DTR、RI、DCD等采用正逻辑,即:ON(接通状态)=+3V~+15V;OFF(断开状态)=-3V~-15V8.1.3RS232C的物理接口及电气特性3.传输距离理论上波特率为19200bps时的传输距离约15m。实际应用中受到波特率、线缆质量等因素的影响,降低波特率可以增加传输距离。4.典型应用与注意事项RS232C总线仅支持点对点通信,只能在两台设备之间建立连接要考虑电平匹配、接地、波特率、线缆长度和信号干扰问题。与TTL/CMOS设备通信时必须使用电平转换芯片,避免直接连接;确保通信双方共地,否则可能导致无法通信或损坏设备;发送端和接收端波特率必须严格一致;长距离传输时需降低波特率或改用RS422/RS485等更适合的标准RS232C抗干扰能力较弱,不适用于强电磁干扰环境。8.1.4RS485的物理接口及电气特性1.物理接口和电气性能RS485标准的物理接口最少只需A、B两条信号线,通过差分方式传输信号。发送端差分电压范围:
逻辑1:+1.5V~+6V逻辑0:-1.5V~-6V接收端的判定条件:逻辑1:VA-B≥+200mV逻辑0:VA-B≤-200mVRS485传输的最大驱动电流为±150mA,建议使用特性阻抗为120Ω的屏蔽双绞线,线缆电容应≤50pF/m,以减少信号衰减一般在总线的两个物理端点各接入一个120Ω的终端电阻8.1.4RS485的物理接口及电气特性2.传输距离理论最大传输距离达1200m,但实际受波特率和线缆质量等影响。9600bps和115200bps时的传输距离大约为1200m和100m。3.RS485与RS232C等标准的对比标准电平特性传输距离最大波特率接口形式RS232C±3~±15V(负逻辑)15米20kbpsDB-9/三线RS422差分信号1200米10Mbps4线(全双工)RS485差分信号1200米10Mbps2线(半双工)TTL/CMOS0~5V/3.3V几米数十Mbps直接连接8.1.4RS485的物理接口及电气特性4.典型应用与注意事项RS485总线支持多点通信,总线上可连接的终端数量取决于总线的电气特性和通信协议,在标准负载条件下通常支持32个节点。在应用中,通过协议中的地址区分不同的终端全双工与双模通信•全双工:支持TX/RX同时收发,数据吞吐无阻塞。•双模支持:兼容标准异步UART协议,也支持同步时钟通信模式灵活可配置帧格式•数据位:支持8位或9位数据宽度。•停止/校验:1/1.5/2位停止位,奇/偶/无校验位自由组合宽范围精确波特率支持从几十bps到数Mbps的宽范围波特率配置,可满足低速控制指令或高速数据传输等多样化应用场景需求。丰富的中断与DMA支持•多级中断:支持发送完成、发送寄存器空、接收非空及多种通信错误中断,便于实时处理•DMA传输:支持发送/接收的DMA高速数据搬运,极大减轻CPU的负荷,提升系统整体运行效率。多场景高级功能扩展•硬件流控:支持CTS/RTS硬件流控,防止数据溢出•多协议兼容:支持LIN总线主/从模式及IrDA®红外通信编码/解码,拓展工业与消费类设备的连接能力8.2.CKS32F103的USART接口特性和结构8.2.CKS32F103的USART接口特性和结构类别特点说明通道数量USART1、USART2、USART3,部分型号带2个工作模式全双工、半双工、多机通信模式同步/异步支持异步通信和同步通信,发送方为同步传输提供时钟数据位长度可选8位或9位数据帧校验位支持奇校验、偶校验或无校验。停止位可选1、0.5、2或1.5个停止位。波特率范围在72MHz主频下,高达4.5Mbit/s。硬件流控USART1、USART2支持CTS/RTS硬件流控。DMA支持发送和接收均支持DMA方式。多机通信可使用地址帧识别,实现总线型通信(9位模式)。红外通信内置IrDASIR串行红外通信模式。LIN总线支持LIN2.0协议,硬件生成同步断点。智能卡模式内置ISO7816-3标准的智能卡接口支持。时钟输出同步模式下可从CK引脚输出时钟信号。中断源接收缓冲非空RXNE,发送缓冲空TXE,发送完成TC,IDLE检测,LIN、CTS、错误中断(溢出、帧错误、噪声)低功耗特性在停止/待机模式下可通过接收数据唤醒MCU。8.2.1USART特性USART相应特性和引脚分配接口总线挂载最高波特率模式TX引脚RX引脚RTS引脚CTS引脚SCLK引脚USART1APB2(72MHz)4.5Mbps高速同步/异步PA9PA10PA12PA11PA8USART2APB1(36MHz)2.25Mbps中速同步/异步PA2PA3PA1PA0PA4USART3APB1(36MHz)2.25Mbps中速同步/异步PB10PB11PB14PB13PB12USART实现双向通信至少需要TX和RX两个引脚。RX引脚接收串行数据,TX引脚发送串行数据。8.2.1USART特性8.2.CKS32F103的USART接口特性和结构USART相应特性和引脚分配接口总线挂载最高波特率模式TX引脚RX引脚RTS引脚CTS引脚SCLK引脚USART1APB2(72MHz)4.5Mbps高速同步/异步PA9PA10PA12PA11PA8USART2APB1(36MHz)2.25Mbps中速同步/异步PA2PA3PA1PA0PA4USART3APB1(36MHz)2.25Mbps中速同步/异步PB10PB11PB14PB13PB12USART实现双向通信至少需要TX和RX两个引脚。RX引脚接收串行数据,TX引脚发送串行数据。8.2.1USART特性8.2.CKS32F103的USART接口特性和结构▌数据发送流程(Transmission)CPU将并行数据写入数据寄存器(DR),硬件自动将数据转移至移位寄存器,完成串并转换后逐位从TX引脚发送。发送完成后,状态寄存器中的发送完成标志位(TC)置1,指示本次发送结束。▌数据接收流程(Reception)接收器从RX引脚接收串行信号,完成并串转换与解码,将恢复的并行数据存入数据寄存器(DR)。接收完成后,状态寄存器中的“接收非空”标志位(RXNE)置1,向CPU发出中断或轮询请求,通知读取数据。8.2.2USART结构8.2.CKS32F103的USART接口特性和结构包括波特率发生器、收发控制单元、移位寄存器、数据寄存器、中断控制单元、硬件流控制模块和IrDA模块8.5.USART相关寄存器及关键位配置名称偏移地址复位值功能及关键位供述USART状态寄存器:USART_SR0x000x000000C0R:指示USART的当前状态,如发送完成、接收缓冲区非空等D0:PE,奇偶校验错误,1=错误,0=正确;D1:FE,帧错误;D2:NE,噪声错误;D3:ORE,过载错误;D4:IDLE,监测总线空闲,1=检测到总线空闲,0=未检测到总线空闲;D5:RXNE,接收数据寄存器非空,1=接收数据,可读,0=空;D6:TC,发送完成,1=一帧数据完全发送,0=未完成(需手动清0:写CR1的TCIE=1后中断清除;D7:TXE,发送数据寄存器空,1=数据已发送到移位寄存器,可写新数据),0=DR非空;
USART数据寄存器:USART_DR0x04不确定R/W:存储发送和接收的数据,包含一个9位数据缓冲区。DR[8:0]:数据值,发送时写入要发送的数据,接收时读取接收到的数据,读写共用,自动区分;USART波特率寄存器:USART_BRR0x080x00000000RW:配置USART的通信波特率,通过分频系统时钟实现;D[15:4]:DIV_Mantissa[11:0],USARTDIV的整数部分;D[3:0]:DIV_Fraction[3:0],USARTDIV的小数部分;每个USART外设均包含一组同样功能的寄存器,通过各自的基地址区分。如USART1的基地址为0x40013800,而USART2的基地址0x40004400,所以其波特率寄存器地址分别为0x40013800+0x08和0x0x40004400+0x088.5.USART相关寄存器及关键位配置USART控制寄存器1:USART_CR10x0C0x00000000RW:配置USART的基本功能,如使能、字长、奇偶校验等;D2:RE,接收使能,1=允许接收(需先置UE=1),0=禁止接收;D3:TE 发送使能,1=允许发送(需先置UE=1),0=禁止发送;D5:RXNEIE,接收非空中断使能,1=ORE或RXNE为1时产生USART中断;D7:TXEIE,发送缓冲区空中断使能,1=TXE标志置位时触发中断;D9:PS,校验选择:1=奇校验,0=偶校验(仅PCE=1时有效)D10:PCE,校验位使能,1=使能校验,0=无校验;D12:M,字长选择:1=9位数据(含校验),0=8位数据;D13:UE,USART使能,1=使能串口,0=关闭;USART控制寄存器2:USART_CR20x100x00000000RW:配置USART的高级功能,如停止位、时钟同步等;D[13:12]:STOP[1:0],
停止位选择,00=1,01=0.5,10=2,11=1.5个停止位;USART控制寄存器3:USART_CR30x140x00000000RW:USART的额外功能,如DMA、硬件流控制、红外和智能卡模式等;D6:DMAR,DMA使能接收,1=使能接收时的DMA模式,0=禁止;D7:DMAT,DMA使能发送,1=使能发送时的DMA模式,0=禁止;USART_GTPR0x180x00000000RW:USART保护时间和预分频器寄存器,用于IrDA模式或智能卡模式的时序配置8.3.USART串口通信的实现环节实现USART通信主要过程:设置波特率、数据位、停止位、校验位等基本参数开启USART外设并根据需要使能发送或接收功能在数据传输阶段,发送端将数据写入USART_DR则启动发送接收端则通过读取USART_DR的数据完成接收。可通过查询标志位或中断机制来判断发送和接收状态,并进行相应处理。通信任务完成后,可根据需求关闭USART外设或进入低功耗模式8.3.1波特率计算和配置8.3.USART串口通信的实现环节CKS32F103采用分数波特率发生器,波特率由系统时钟和分频值共同决定波特率=fPCLK/(16×USARTDIV)则USARTDIV=fPCLK/(16×波特率)fPCLK为USART外设的时钟频率,即挂载APB总线的时钟频率USARTDIV为波特率分频值,需拆分为整数和小数部分写入波特率寄存器USART_BRRUSART_BRR由12位整数DIV_Mantissa和4位小数
DIV_Fraction
组成。DIV_Mantissa
直接取USARTDIV的整数部分,无需四舍五入,仅截断整数。8.3.1波特率计算和配置8.3.USART串口通信的实现环节DIV_Fraction
将USARTDIV的小数部分乘以16取整。若小数部分乘以16后≥0.5,则向上取整以提升精度。当小数部分乘以16后≥16时,4位小数DIV_Fraction溢出,需要将进位加到整数部分将波特率分频值写入USART_BRR后,硬件会自动更新波特率计数器,生成发送和接收的时钟信号。通信过程中不能修改USART_BRR,否则可能导致数据传输错误。发送端和接收端的波特率必须一致,即USARTDIV的整数部分和小数部分设置值应完全相同8.3.USART串口通信的实现环节例:当fPCLK=72MHz,USART1配置为115200bps时,则波特率分频值USARTDIV=72,000,000/(16×115,200)≈39.0625
USART_BRR的整数部分为DIV_Mantissa=39=0x27小数部分DIV_Fraction=0.0625×16=0x01
USART_BRR=0x2718.3.1波特率计算和配置若计算出USARTDIV=50.99,整数部分为50,小数部分DIV_Fraction=16*0.99=15.84,最接近的整数是16=>DIV_Fraction[3:0]有溢出,应向整数部分进位。则DIV_Mantissa=51=0x33,USART_BRR=0x330,对应的实际波特率为72,000,000/(16×51)=88235.3bps,与目标波特率88,235.6bps之间存在微小误差,但在容许范围8.3.2帧结构配置8.3.USART串口通信的实现环节USART的帧结构中起始位固定为1位逻辑0,不需要编程设置,数据字长度、校验位、停止位可通过寄存器配置USART控制寄存器1:USART_CR1RW:配置USART的基本功能,如使能、字长、奇偶校验等;D2:RE,接收使能,1=允许接收(需先置UE=1),0=禁止接收;D3:TE 发送使能,1=允许发送(需先置UE=1),0=禁止发送;D5:RXNEIE,接收非空中断使能,1=ORE或RXNE为1时产生USART中断;D7:TXEIE,发送缓冲区空中断使能,1=TXE标志置位时触发中断;D9:PS,校验选择:1=奇校验,0=偶校验(仅PCE=1时有效)D10:PCE,校验位使能,1=使能校验,0=无校验;D12:M,字长选择:1=9位数据(含校验),0=8位数据;D13:UE,USART使能,1=使能串口,0=关闭;USART控制寄存器2:USART_CR20x100x00000000RW:配置USART的高级功能,如停止位、时钟同步等;D[13:12]:STOP[1:0],
停止位选择,00=1,01=0.5,10=2,11=1.5个停止位;8.3.USART串口通信的实现环节8.3.3中断与标志管理中断事件标志使能位功能发送标志发送数据寄存器空TXETXEIE发送数据寄存器为空,可以写入新的数据CTS标志CTSCTSIE最后一位数据已经完全移出移位寄存器,发送完成发送完成TCTCIE硬件流控制使能时,CTS信号发生变化接收标志接收数据就绪可读RXNERXNEIE接收数据寄存器非空,可以读取新的数据检测到数据溢出ORE上一次接收数据未及时读取,新数据到来导致溢出错误标志检测到空闲线路IDLEIDLEIE检测到空闲总线奇偶检验错PEPEIE接收时检测到奇偶校验错误断开标志LBDLBDIE检测到LIN断开符号噪声标志,多缓冲通信中的溢出和帧格式错误NE或ORE或FEEIENE和FE为噪声标志、帧格式错误,仅在多缓冲通信模式有效;EIE为DMA方式时的接收出错使能标志。8.3.1波率计算和配置8.3.USART串口通信的实现环节8.3.3中断与标志管理USART中断映射图
所有USART相关的中断事件都映射到同一个中断向量中断状态标志包括发送、接收、错误等,EIE标志位只有在DMA接收模式下才使用,用于接收出错时产生中断。中断状态标志位与对应使能位共同决定是否触发中断。8.3.4发送器和接收器配置8.3.USART串口通信的实现环节缓冲方式硬件单缓冲:发送器和接收器默认采用硬件单缓冲通信,即每次只有一个字节的数据缓冲。当TDR中的数据转移到移位寄存器后,发送寄存器空状态标志TXE被置为1,表示可以写入下一个字节。如果未及时写入新数据,发送会暂停,直到写入新数据。接收器方面,当RDR中有未读取的数据时,接收寄存器非空状态标志RXNE被置为1,提示CPU进行读取。若未及时读取,新接收的数据会覆盖RDR中的旧数据,导致数据丢失双缓冲通信时,发送器与接收器的DMA使能位分别为DMAT和DMAR,需要单独配置。DMA配合USART实现多缓冲,常用双缓冲8.3.1波率计算和配置8.3.USART串口通信的实现环节8.3.3中断与标志管理2.数据发送流程写入数据:将待发送数据写入USART_DR,写操作的同时硬件自动清除TXE位;连续发送:单缓冲模式下需等待TXE=1后再写入下一个字节。在DMA模式下,由DMA自动填充数据,无需软件干预;结束检测:在写入最后一个字节后,等待传输完成标志,TC=1表示移位寄存器中最后的数据发送完毕。在关闭USART或进入低功耗前,须等待TC=1,否则可能会破坏最后发送的数据。3.数据接收流程RXNE位被置位:移位寄存器的内容被转移到RDR,表示有数据可读,若RXNEIE=1则同时触发相关中断;错误检测:接收期间如果检测到帧错误,噪音或溢出错误,对应的FE、NE、ORE标志会被置位,需软件清除;单缓冲器接收模式:软件读USART_DR寄存器后硬件自动清零RXNE标志。RXNE必须在下一个字节到来前清零,否则会产生溢出错误。多缓冲器模式:RXNE在每个字节接收后被置位,由DMA的读操作自动清零。软件通过DMA中断来处理数据,而非直接读RDR。8.4.1硬件连接8.4.CKS32F103的USART接口通信TTL电平设备之间的USART通信2.CKS32F103嵌入式设备与RS485设备通信8.4.1硬件连接8.4.CKS32F103的USART接口通信采用光隔技术的USART与RS485通信连线图2.CKS32F103嵌入式设备与RS485设备通信8.4.1硬件连接8.4.CKS32F103的USART接口通信3.CKS32F103嵌入式设备与工控机通信
8.4.2CKS32F103设备与工控机通信程序例程8.4.CKS32F103的USART接口通信发送器和接收器的初始化激活USART并配置帧格式和波特率:置位USART_CR1寄存器的UE位以使能USART外设,设置USART_CR1和USART_CR2确定数据字长、校验位和停止位,计算并配置USART_BRR寄存器的波特率;发送器缓冲配置:默认收发采用硬件单缓冲通信,无需额外配置。如果采用多缓冲器通信,配置USART_CR3中的DMA使能位DMAT=1,并配置DMA通道,目标地址为USART_DR;接收器缓冲配置:默认采用硬件单缓冲,不需要额外配置。如果采用多缓冲器通信,配置USART_CR3中的DMA使能位DMAR=1,并配置DMA通道,目标地址为USART_DR;使能发送器:设置USART_CR1中的位TE=1,USART在第一个数据前会自动发送一个空闲帧;使能接收器:设置USART_CR1的位RE=1,允许接收数据。发送器初始化设置只需要第1)~4)和第6)步,接收器需第1)~3)、5)步。8.4.2CKS32F103设备与工控机通信程序例程8.4.CKS32F103的USART接口通信2.通信例程工控机通过USART1与时钟为72MHz的CKS32F103嵌入式设备通信,控制PA0~PA7连接的8位LED灯的点亮或熄灭,低电平LED亮,高电平熄灭,请编写CKS32F103嵌入式终端设备的通信程序。波特率为115200bps,帧格式为8位字长,1位停止位,奇校验。通信协议包括工控机下发命令和嵌入式返回响应,下发命令以$开始,以CR(0x0D)结束,返回命令以>开始,以CR(0x0D)结束。格式如下。下发命令格式:灯控命令:$<addrH><addrL>0x01<灯状态字节>CR温度命令:$<addrH><addrL>0x02CR回复格式:灯控回复:><addrH><addrL>0x01CR温度回复:><addrH><addrL>0x02<温度4字节数据>CR协议中的地址<addrH><addrL>字段可用在多机通信中,如采用RS485通信。8.4.2CKS32F103设备与工控机通信程序例程8.4.CKS32F103的USART接口通信程序代码#include"cs32f10x.h"#include<string.h>#defineDEVICE_ADDR_H0x00#defineDEVICE_ADDR_L0x01#defineCMD_LED_CTRL0x01#defineUSART_BUF_SIZE10uint8_tusart_rx_buf[USART_BUF_SIZE];uint8_trx_index=0;uint8_trx_ready=0;//初始化GPIOAPA0~PA7输出模式(低电平亮灯)voidLED_GPIO_Init(void){
GPIO_InitTypeDef
GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);}8.4.2CKS32F103设备与工控机通信程序例程8.4.CKS32F103的USART接口通信程序代码//设置LED状态(低电平亮)voidSet_LED(uint8_tvalue){for(inti=0;i<8;i++){if(value&(1<<i))
GPIO_SetBits(GPIOA,(1<<i));//熄灭(高电平)else
GPIO_ResetBits(GPIOA,(1<<i));//点亮(低电平)}}
//初始化USART1voidUSART1_Init(void){
GPIO_InitTypeDef
GPIO_InitStructure;
USART_InitTypeDef
USART_InitStructure;
NVIC_InitTypeDef
NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA,ENABLE);
8.4.2CKS32F103设备与工控机通信程序例程8.4.CKS32F103的USART接口通信程序代码//TX-PA9
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);//RX-PA10
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA,&GPIO_InitStructure);//USARTconfiguration
USART_InitStructure.USART_BaudRate=115200;
USART_InitStructure.USART_WordLength=USART_WordLength_8b;
USART_InitStructure.USART_StopBits=USART_StopBits_1;
USART_InitStructure.USART_Parity=USART_Parity_Odd;//奇校验
USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
USART_Init(USART1,&USART_InitStructure);//使能接收中断
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
USART_Cmd(USART1,ENABLE);8.4.2CKS32F103设备与工控机通信程序例程8.4.CKS32F103的USART接口通信程序代码//中断优先级
NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);}//发送一个字节voidUSART1_SendByte(uint8_tdata){
USART_SendData(USART1,data);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);}//发送响应帧voidUSART1_SendResponse(void){USART1_SendByte('>');USART1_SendByte(DEVICE_ADDR_H);USART1_SendByte(DEVICE_ADDR_L);USART1_SendByte(CMD_LED_CTRL);USART1_SendByte('\r');}8.4.2CKS32F103设备与工控机通信程序例程8.4.CKS32F103的USART接口通信程序代码//串口接收中断服务函数voidUSART1_IRQHandler(void){if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET){uint8_tch=USART_ReceiveData(USART1);if(rx_ready==0){if(rx_index==0&&ch=='$'){
usart_rx_buf[rx_index++]=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省揭阳市2025-2026学年高三上学期11月期中物理试题
- 2025年四川省达州市大竹县考调申论自测试题及答案解析
- 2025年湖南省衡阳市衡阳县选调考试申论综合训练题库及答案
- 2026年主办会计应聘测试题及答案
- 2026年戏曲鉴赏学习通测试题及答案
- 2026年昂纳入职测试题及答案
- 2026年防骗指数测试题及答案
- 2026年看准网人格测试题及答案
- 2026年学校生存测试题及答案
- 高中第七单元科学社会主义从理论到实践第21课马克思主义的诞生和巴黎公社教案
- 脊柱侧弯医学科普
- 利害业主关系协议书
- 青少年卫生健康知识讲座
- 《观赛礼仪》课件
- 2024年四川泸州翰飞航天科技发展有限责任公司招聘笔试参考题库含答案解析
- 《功能性食品学》第七章-辅助改善记忆的功能性食品
- 双管高压旋喷桩施工方案
- 脊柱外科进修汇报
- 定点医疗机构医保管理制度
- 《原地侧向投掷轻物》教案 -省赛一等奖
- D500-D505 2016年合订本防雷与接地图集
评论
0/150
提交评论