版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章
串口(USART)及其应用1串行通信串行通信,同步/异步串行通信,USART/UARTSTM32的USART原理及其应用要领STM32有多达5个USART,数量多、功能强串行通信的配置STM32串口设置配置,常用的UART函数,串口助手串口通信应用实例收发轮询方式,收发中断方式,空闲中断方式234USART及其应用1串口通信嵌入式系统中的通信同步/异步串行通信USART/UART嵌入式系统中的通信嵌入式设备之间或嵌入式设备与外部设备之间常常要进行信息交换和数据传输,这个过程就是通信。1.内部通信嵌入式系统通常由多个硬件模块或组件组成,这些硬件模块或组件之间需要进行内部通信以实现协同工作。例如,一个嵌入式系统可能包括微控制器、传感器、执行器等多个模块,它们之间通过总线、中断或其他通信方式进行信息传递,以实现系统的整体功能。2.外部通信嵌入式系统通常需要与外部设备进行通信,以获取外部信息、控制外部设备或与其他系统进行交互。外部通信包括串口通信、网络通信、无线通信等。3.传感器与控制器通信嵌入式系统中经常涉及传感器与控制器之间的通信。通信可以是模拟信号的传输,也可以是数字信号的传输。4.网络通信对于连接到网络的嵌入式系统,网络通信变得至关重要,它包括以太网、Wi-Fi、蓝牙等通信方式。5.总线通信内部组件之间的通信一般通过总线进行,它可传输地址、数据和控制信号,从而协调各个组件的工作。USART及其应用2串口通信嵌入式系统中的通信同步/异步串行通信USART/UART同步/异步串行通信异步通信和同步通信是两种不同的通信方式,它们在数据传输的时序和同步性上有明显的区别。1.异步通信(1)与时序无关:在异步通信中,数据的传输不依赖严格的时序同步。(2)起始位和停止位:异步通信使用起始位和停止位来标识每个数据帧。(3)波特率:异步通信中,波特率是一个关键的参数,它指定了每秒传输的比特数。由于没有共享的时钟信号,发送端和接收端需要事先约定相同的波特率。(4)用途:异步通信常用于距离相对较短和速率较低的通信,例如串口通信。2.同步通信(1)时序同步:同步通信要求发送端和接收端在时序上保持同步。(2)时钟同步:发送端和接收端共享相同的时钟信号,以确保数据的传输时序一致。(3)速率同步:在同步通信中,不同设备之间的时钟速率要匹配一致,以保证数据的准确传输。(4)应用:同步通信通常用于高速数据传输和长距离通信,例如以太网通信、并行总线通信等。UART是异步通信的代表,而以太网、SPI、I2C等通信协议则是同步通信的代表。USART及其应用3串口通信嵌入式系统中的通信同步/异步串行通信USART/UARTUSART/UARTUSART和UART的主要区别在于,USART支持同步和异步通信,而UART仅支持异步通信。UART(UniversalAsynchronousReceiverTransmitter)即通用异步收发器,是一种用于串行通信的协议,它分为物理层和协议层。UART通常用于与外部设备进行串行通信,数据通过引脚逐位进行传输,以实现数据的发送与接收。在UART通信中,发送端产生的不同长度的时间间隔决定了数据的传输速率,即波特率。1.物理层1)引脚定义2)电压特性3)物理接口4)USB转串口模块2.串行通信协议的协议层1)帧结构2)波特率3)奇偶校验4)流控制。3.协议应用串行通信协议可应用于简单的点对点通信,也可应用于较为复杂的多点通信,如Modbus、RS-485等。USART及其应用4STM32的USART的原理及其应用要领STM32之USART的概述STM32之USART的基本原理STM32之USART的应用要领STM32之USART的初始化配置USART是UniversalSynchronous/AsynchronousReceiver/Transmitter的简称翻译成中文即为:通用同步/异步串行接收/发送器它具有全双工通用同步/异步串行收发能力。该接口是一个高度灵活的串行通信设备。STM32的USART模块分USART、UART两种:大容量STM32F103,有多达5个串口,前三个为USART,后两个则为UART,即:USART1,USART2,USART3,以及UART4、UART5区别呢?►全双工操作(相互独立的接收数据和发送数据)►独立的高精度波特率发生器,不占用定时器►支持5、6、7、8和9位数据位,1或2位停止位的串行数据帧结构►由硬件支持的奇偶校验位发生和检验►数据溢出检测;帧错误检测►包括错误起始位的检测噪声滤波器和数字低通滤波器►三个完全独立的中断,TX发送完成、TX发送数据寄存器空、RX接收完成►支持多机通信模式;支持倍速异步通信模式USART及其应用5STM32的USART的原理及其应用要领STM32之USART的概述STM32之USART的基本原理STM32之USART的应用要领STM32之USART的初始化配置两种通信方式————串行通信(分为单工、半双工、全双工)传输原理:数据按位顺序传输。优点:占用引脚资源少缺点:速度相对较慢——并行通信传输原理:数据各个位同时传输。优点:速度快缺点:占用引脚资源多串行通信的通信方式——
——同步通信:带时钟同步信号传输。SPI,IIC通信接口,一个时钟周期只传1bit信号——异步通信:不带时钟同步信号。UART(通用异步收发器),单总线,要求波特率匹配1/5常见的串行通信接口————UART ----TXD、RXD、GND——单总线 ----DQD18B20还记得吗?——SPI ----SCK、MISO、MOSI——I2C ----SCL、SDAUSART及其应用6STM32的USART的原理及其应用要领STM32之USART的概述STM32之USART的基本原理STM32之USART的应用要领STM32之USART的初始化配置USART(UART)通信接口形式————TTL——RS-232C2/5TTL电平RS-232C电平USART及其应用7STM32的USART的原理及其应用要领STM32之USART的概述STM32之USART的基本原理STM32之USART的应用要领STM32之USART的初始化配置5路USART的引脚关系——UART常采用三线制通信方式,三条线分别为RXD(数据接收线)、TXD(数据发送线)和GND(地线)。通信双方采取交叉连线的方式,即一方的TXD线与另一方的RXD线连接,二者的GND线连接起来以形成信号回路。3/5USART及其应用8STM32的USART的原理及其应用要领STM32之USART的概述STM32之USART的基本原理STM32之USART的应用要领STM32之USART的初始化配置USART(UART)的结构示意图————输入输出、硬件流控——波特率发生器——移位寄存器——多缓冲区与DMA4/5STM32之USART结构简图USART及其应用9STM32的USART的原理及其应用要领STM32之USART的概述STM32之USART的基本原理STM32之USART的应用要领STM32之USART的初始化配置波特率——串行通信速度的表示单位——波特率(BaudRate)与比特率波特率——码元传输速率单位,他说明单位时间传输了多少个码元。单位:Baud比特率——每秒传输二进制代码位数。单位:bit/s——举例说明1)如果在数字传输过程中,用0V表示数字0,5V表示数字1,那么每个码元有两种状态0和1。每个码元代表一个二进制数字。此时的每秒码元数和每秒二进制代码数是一样的,这叫两相调制,波特率等于比特率2)如果在数字传输过程中,0V、2V、4V和6V分别表示00、01、10和11,那么每个码元有四种状态00、01、10和11.每个码元代表两个二进制数字。此时的每秒码元数是每秒二进制代码数的一半,这叫四相调制,波特率等于比特率一半——波特率允许最大误差:5%5/5STM32之USART典型的波特率——2400、9600、19200、57600、115200、230769、461538、923076、2250000、4500000(4.5M/s)USART及其应用10STM32的USART的原理及其应用要领STM32之USART的概述STM32之USART的基本原理STM32之USART的应用要领STM32之USART的初始化配置USART应用步骤——非DMA方式第一步:波特率等串口通信模式配置第二步:串口涉及的GPIO引脚的配置——RX配置成GPIO_Mode_IN_FLOATING——TX配置成GPIO_Mode_AF_PP第三步:USART中断配置第四步:接收或者发送数据第五步:数据处理1/4STM32固件库USART相关的主要函数————USART_Init()——初始化USARTx串口——USART_Cmd()——使能USARTx串口——USART_ITConfig()——使能USARTx串口中断——USART_SendData()——发送一个字节数据——USART_ReceiveData()——从串口接收一字节数据如果采用中断方式(中断接收或中断发送,或者两者都采用中断),则还需要涉及到中断文件stm32f10x_it.c中的以下串口中断函数:——USARTx_IRQHandler()——中断函数USART及其应用11STM32的USART的原理及其应用要领STM32之USART的概述STM32之USART的基本原理STM32之USART的应用要领STM32之USART的初始化配置USAR初始化及其举例————打开时钟——GPIO、USARTx、AFIO如果是UART1,则挂在APB2桥上,因此采用RCC_APB2PeriphClockCmd()进行初始化,其余的UART2~5均挂在APB1上——GPIO初始化——配置UART相关属性通过结构体USART_InitTypeDef来确定。USART_BaudRate:波特率,视具体设备而定USART_WordLength:字长USART_StopBits:停止位USART_Parity:校验方式USART_HardwareFlowControl:硬件流控制USART_Mode:单/双工——使能串口1/2USART及其应用12STM32的USART的原理及其应用要领STM32之USART的概述STM32之USART的基本原理STM32之USART的应用要领STM32之USART的初始化配置举例——USART_InitStructure.USART_BaudRate=9600;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;USART_Init(USART1,&USART_InitStructure);USART_Cmd(USART1,ENABLE);2/2USART及其应用13串口通信配置串口配置解析常用的UART函数串口重定向串口调试助手配置USART外设在Connectivity选项卡中,选择USART1或其他USART外设,在USART配置选项中,启用USART外设并进行相应的配置,如图5.3所示。USART及其应用14串口通信配置串口配置解析常用的UART函数串口重定向串口调试助手配置USART外设启用串口中断,如图5.4所示。USART及其应用15串口通信配置串口配置解析常用的UART函数串口重定向串口调试助手配置USART外设设置相应的引脚PA9、PA10分别为复用推挽和浮空输入模式,如图5.5所示。USART及其应用16串口通信配置串口配置解析常用的UART函数串口重定向串口调试助手常用的UART函数在STM32的HAL库中,与UART相关的函数较多,包括初始化、发送、接收等功能函数。以下列举常用的UART函数及其功能描述,并给出应用示例。1.UART初始化函数(1)函数原型。HAL_StatusTypeDefHAL_UART_Init(UART_HandleTypeDefhuart);(2)功能描述:初始化UART外设。(3)应用范例。UART_HandleTypeDefhuart1;//初始化UART1huart1.Instance=UART1;huart1.Init.BaudRate=9600;huart1.Init.WordLength=UART_WORDLENGTH_8B;huart1.Init.StopBits=UART_STOPBITS_1;huart1.Init.Parity=UART_PARITY_NONE;huart1.Init.Mode=UART_MODE_TX_RX;huart1.Init.HwFlowCtl=UART_HWCONTROL_NONE;huart1.Init.OverSampling=UART_OVERSAMPLING_16;HAL_UART_Init(&huart1);USART及其应用17串口通信配置串口配置解析常用的UART函数串口重定向串口调试助手常用的UART函数在STM32的HAL库中,与UART相关的函数较多,包括初始化、发送、接收等功能函数。以下列举常用的UART函数及其功能描述,并给出应用示例。2.UART发送数据函数(1)函数原型。HAL_StatusTypeDefHAL_UART_Transmit(UART_HandleTypeDefhuart,uint8_tpData,uint16_tSize,uint32_tTimeout);(2)功能描述:发送数据。(3)应用范例。uint8_tdata[]="Hello,UART!";HAL_UART_Transmit(&huart1,data,sizeof(data),HAL_MAX_DELAY);USART及其应用18串口通信配置串口配置解析常用的UART函数串口重定向串口调试助手常用的UART函数在STM32的HAL库中,与UART相关的函数较多,包括初始化、发送、接收等功能函数。以下列举常用的UART函数及其功能描述,并给出应用示例。3.UART接收数据函数(1)函数原型。HAL_StatusTypeDefHAL_UART_Receive(UART_HandleTypeDefhuart,uint8_tpData,uint16_tSize,uint32_tTimeout);(2)功能描述:接收数据。
(3)应用范例。uint8_trxData[10];HAL_UART_Receive(&huart1,rxData,sizeof(rxData),HAL_MAX_DELAY);USART及其应用19串口通信配置串口配置解析常用的UART函数串口重定向串口调试助手常用的UART函数在STM32的HAL库中,与UART相关的函数较多,包括初始化、发送、接收等功能函数。以下列举常用的UART函数及其功能描述,并给出应用示例。4.UART中断接收回调函数(1)函数原型。__weakvoidHAL_UART_RxCpltCallback(UART_HandleTypeDefhuart);(2)功能描述:中断接收完成回调函数,用户可重写该函数(同名函数)以处理接收完成事件,因为它是弱函数(__weak函数)。(3)应用范例。voidHAL_UART_RxCpltCallback(UART_HandleTypeDefhuart){//自定义处理接收完成的相关函数体内容}USART及其应用20串口通信配置串口配置解析常用的UART函数串口重定向串口调试助手常用的UART函数在STM32的HAL库中,与UART相关的函数较多,包括初始化、发送、接收等功能函数。以下列举常用的UART函数及其功能描述,并给出应用示例。5.UART中断发送回调函数(1)函数原型。__weakvoidHAL_UART_TxCpltCallback(UART_HandleTypeDefhuart);(2)功能描述:中断发送完成回调函数,用户可重写该函数以处理发送完成事件。(3)应用范例。voidHAL_UART_TxCpltCallback(UART_HandleTypeDefhuart){//处理发送完成事件}USART及其应用21串口通信配置串口配置解析常用的UART函数串口重定向串口调试助手串口重定向串口重定向是指将标准输入输出流(通常使用printf和scanf函数进行串口输入、输出)通过某种方式重定向到指定的串口设备,这样在通信程序中就可直接使用C语言的标准库函数printf()和scanf()实现发送和接收。在嵌入式系统中,这样的操作常常用于通过串口与外部设备的通信,例如用计算机进行调试或与其他嵌入式设备进行数据交换。在5.3.1节生成的工程的基础上加入串口重定向部分的代码,可以实现串口重定向功能。(1)引用C标准输入输出头文件。/*Includes------------------------------------------------------------------*/include"main.h"include<stdio.h>/*Privateincludes----------------------------------------------------------*/USART及其应用22串口通信配置串口配置解析常用的UART函数串口重定向串口调试助手串口重定向串口重定向是指将标准输入输出流(通常使用printf和scanf函数进行串口输入、输出)通过某种方式重定向到指定的串口设备,这样在通信程序中就可直接使用C语言的标准库函数printf()和scanf()实现发送和接收。在嵌入式系统中,这样的操作常常用于通过串口与外部设备的通信,例如用计算机进行调试或与其他嵌入式设备进行数据交换。(2)重定向。/*USERCODEBEGINPFP*/int__io_putchar(intch){uint8_tc=ch;HAL_UART_Transmit(&huart1,&c,1,100);returnch;}/*USERCODEENDPFP*/USART及其应用23串口通信配置串口配置解析常用的UART函数串口重定向串口调试助手串口重定向串口重定向是指将标准输入输出流(通常使用printf和scanf函数进行串口输入、输出)通过某种方式重定向到指定的串口设备,这样在通信程序中就可直接使用C语言的标准库函数printf()和scanf()实现发送和接收。在嵌入式系统中,这样的操作常常用于通过串口与外部设备的通信,例如用计算机进行调试或与其他嵌入式设备进行数据交换。(3)在while语句中加入如下测试代码。/*USERCODEBEGINWHILE*/while(1){/*USERCODEBEGIN3*///HAL_UART_Transmit(&huart1,"123",3,1000);printf("123123\r\n");/*USERCODEEND3*/}/*USERCODEENDWHILE*/USART及其应用24串口通信配置串口配置解析常用的UART函数串口重定向串口调试助手串口调试助手串口调试助手是一种用于串口通信调试的工具,通常是一个图形化的软件应用程序。它能够监视串口数据的发送和接收,提供实时的数据显示,并支持一些调试功能,如数据的发送、接收、保存、清空缓冲区等,是嵌入式系统开发中不可或缺的工具,用于调试和验证串口通信的正确性和稳定性。串口调试助手有多个,如“串口小精灵”等,用户可通过关键词“串口调试助手”“串口调试工具”等进行搜索下载。USART及其应用25串口应用实例串口收发轮询方式串口收发中断方式串口空闲中断方式串口收发轮询方式1.轮询方式的一般步骤串口收发轮询(查询)方式是一种串口通信的实现方式,其中数据的发送和接收是通过轮询的方式进行的。在这种方式下,系统通过不断查询串口状态来确定是否可以进行数据的发送或接收,而不依赖中断或DMA等机制。在串口收发轮询方式中,通常包括以下几个步骤。(1)初始化串口。在系统启动时,需要进行串口的初始化,设置波特率、数据位、停止位等参数。(2)发送数据。当需要发送数据时,系统通过轮询(查询)串口的状态,检查发送缓冲区是否为空。如果发送缓冲区为空,系统将待发送的数据写入发送缓冲区,并等待数据发送完成。(3)接收数据。当需要接收数据时,系统通过轮询(查询)串口的状态,检查接收缓冲区是否有数据。如果接收缓冲区非空,系统将读取接收缓冲区中的数据。(4)轮询周期。上述发送和接收过程被包含在一个循环中重复进行,这个循环的周期可由系统的主循环控制,以调节轮询周期。USART及其应用26串口应用实例串口收发轮询方式串口收发中断方式串口空闲中断方式串口收发轮询方式2.轮询方式的特点(1)优点。①实现简单。轮询方式相对于中断或DMA方式,实现较为简单,不需要考虑中断服务函数或DMA配置。②适用于简单场景。在一些简单的嵌入式系统中,轮询方式足以满足通信需求。(2)缺点。①轮询效率低。轮询方式会占用系统的主循环时间,降低了系统的实时性和效率。②无法实现异步操作。无法实现异步的数据传输,可能导致系统响应速度较慢。③串口收发轮询方式适用于一些对实时性要求不高、系统相对简单的应用场景。在对实时性要求较高、需要异步操作的情况下,采用中断或DMA方式将更为合适。当然,选择哪种方式通常取决于具体应用需求和系统的复杂程度。USART及其应用27串口应用实例串口收发轮询方式串口收发中断方式串口空闲中断方式串口收发中断方式1.基本流程以下是串口收发中断方式的基本流程。(1)初始化串口。在系统启动时,需要进行串口的初始化,设置波特率、数据位、停止位等参数。(2)配置中断。使能串口的接收和发送中断,通常包括接收缓冲区非空中断(RXNE)和发送缓冲区空中断(TXE)。(3)发送数据。当需要发送数据时,系统将待发送的数据写入发送缓冲区,并启动发送操作。当发送缓冲区空闲时,触发发送中断,通过中断服务程序(ISR)继续发送剩余数据。(4)接收数据。当串口接收到数据并存入接收缓冲区中时,触发接收中断。中断服务程序从接收缓冲区中读取数据,并进行相应的处理。(5)中断服务程序。中断服务程序是一段特殊的代码,它会在中断发生时被执行。在串口通信中,中断服务程序负责处理接收和发送中断,确保数据能够及时地被处理或发送。USART及其应用28串口应用实例串口收发轮询方式串口收发中断方式串口空闲中断方式串口收发中断方式2.中断方式的特点(1)优点。①异步处理。中断方式允许系统异步地进行串口数据的收发,提高了系统的实时性和效率。②适用于复杂场景。中断方式适用于对实时性要求较高,同时系统较为复杂的应用场景。(2)缺点。①实现相对复杂。与轮询方式比较,中断方式的实现相对复杂,需要考虑中断服务程序的编写和中断优先级的配置。②系统开销大。频繁地触发中断可能会增加系统开销。USART及其应用29串口应用实例串口收发轮询方式串口收发中断方式串口空闲中断方式串口空闲中断方式串口空闲中断方式是一种在串口通信中常用的方式,它基于串口的空闲线状态进行中断触发。相对于普通的中断方式,串口空闲中断方式可以更灵活地处理接收数据,减少了接收数据的延迟,其时序参见图5.1。以下对串口空闲中断方式与普通中断方式进行简要对比。USART及其应用30串口应用实例串口收发轮询方式串口收发中断方式串口空闲中断方式串口空闲中断方式普通中断方式:(1)中断触发条件:中断在接收寄存器非空或发送寄存器可用时触发。(2)中断处理:需要不断地检查接收寄存器的状态,当接收寄存器非空时立即处理接收到的数据。(3)接收延迟:中断是在接收寄存器非空时触发的,可能存在一定的接收延迟,尤其在数据包的末尾。空闲中断方式:(1)中断触发条件:中断在检测到串口空闲线状态时触发。(2)中断处理:中断服务程序可以更灵活地处理接收到的数据,在数据包的末尾触发中断,减少接收延迟。(3)接收延迟:更适合处理不定长度的数据包,能够更及时地触发中断,减少接收延迟。USART及其应用31串口应用实例串口收发轮询方式串口收发中断方式串口空闲中断方式串口空闲中断方式空闲中断的实现:在STM32等嵌入式系统中,空闲中断通常通过配置串口空闲中断的使能,并在中断服务程序中进行接收数据的处理。总结:普通中断方式:适用于定长数据包的场景;中断在接收寄存器非空或发送寄存器可用时触发。空闲中断方式:适用于不定长数据包的场景,可减少接收延迟;中断在检测到串口空闲线状态时触发。中断方式的选择取决于具体的应用场景和数据传输的特点。USART及其应用32两个USART的通信(STM32与PC、STM32与GSM)项目设计要求与GSM模块串行通讯协议及其设计程序算法与程序框架具体代码分析GSM模块——短信接收与发送STM32的USART3的TX、RX、GND分别与SIM800L模块的RXD、TXD、GND三线制形式连接本例使用的SIM800L模块的电源电压为4V(1A),不能超过4.2V,否则会烧毁模块,因此要做相应处理2/2淘宝上很多,但一定要注意电源处理哦USART及其应用33两个USART的通信(STM32与PC、STM32与GSM)项目设计要求与GSM模块串行通讯协议及其设计程序算法与程序框架具体代码分析工程模版中的4个文件————stm32f10x_it.h、stm32f10x_it.c——main.c——stm32f10x_conf.h重点讨论GSM模块的程序设计————初始化GSM模块——短信发送——短信接收处理(这部分被包含在主函数中)1/4不同的GSM模块,支持的运营商和AT指令系统会有差异,这一点要引起重视USART及其应用34两个USART的通信(STM32与PC、STM32与GSM)项目设计要求与GSM模块串行通讯协议及其设计程序算法与程序框架具体代码分析——初始化GSM模块2/4熟悉AT指令很关键USART及其应用35两个USART的通信(STM32与PC、STM32与GSM)项目设计要求与GSM模块串行通讯协议及其设计程序算法与程序框架具体代码分析——短信发送的流程图3/4接收到对方应答符号‘>’后,必须立即发送短信,例如:“IamOK”
,然后加上结束符“CTRL+Z”(即十六进制值0x1a)USART及其应用36两个USART的通信(STM32与PC、STM32与GSM)项目设计要求与GSM模块串行通讯协议及其设计程序算法与程序框架具体代码分析——主函数的流程图(包含短信接收)4/4向设定手机发送欢迎信息收到有效短信(“ON”或“OFF”),则点亮或关闭LED,并回送响应短信USART及其应用37两个USART的通信(STM32与PC、STM32与GSM)项目设计要求与GSM模块串行通讯协议及其设计程序算法与程序框架具体代码分析GSM初始化——1/3voidGSM_SMSInit(void){SendString(USARTmy2,(u8*)("ATE0\r"));
//关闭回显,否则会回送发的AT指令delay_nms(1000);SendString(USARTmy2,(u8*)("ATE0\r"));delay_nms(1000); //两次是为了稳妥,一次即可
RxCount2=0;//清接收缓冲区,等待接收新的应答EmptyRxBuffer2(Max);SendString(USARTmy2,(u8*)("AT\r"));//发送握手while(hand(RxBuffer2,(u8*)("OK"))!=1);//等待应答
RxCount2=0;EmptyRxBuffer2(Max);SendString(USARTmy2,(u8*)("AT+CNMI=2,2\r"));
//新消息来时直接发送到串口while(hand(RxBuffer2,(u8*)("OK"))!=1);//等待应答}大部分AT指令需要回车符结束,大部分AT指令有OK回送USART及其应用38两个USART的通信(STM32与PC、STM32与GSM)项目设计要求与GSM模块串行通讯协议及其设计程序算法与程序框架具体代码分析GSM发送短信——对方号码,发送内容。发送成功返回12/3SMSSend(u8*num,u8*text){u8cmgs[30]=“AT+CMGS=\”11111111111\“\r”;//手机号码u8i;for(i=9;i<20;i++)cmgs[i]=*num++;//填入实际的11位长号RxCount2=0;EmptyRxBuffer2(Max);SendString(USARTmy2,(u8*)(cmgs));//发送该指令while(hand(RxBuffer2,(u8*)(">"))!=1);//等待应答
for(i=0;*text!='\0';i++)//设置要发送的TEXT短信{TxBuffer2[i]=*text++;}TxBuffer2[i]='\x1a';//ctrl+Zi++;TxBuffer2[i]='\0';//
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重点岗位双重预防机制操作指南
- 足底反射区按摩手法教学指引
- 产后营养调理专属配餐食谱
- 门店满意度调查管理规范
- 足底反射区按摩手法技术规范
- 水稻种子包衣处理技术操作规程
- 电疗仪器使用安全操作守则
- 外委施工人员安全教育培训方案
- 康复理疗设备日常清洁规范
- 专职安全员履职能力提升指南
- 2026年新闻记者职业资格考试一本通
- 2026中国眼科医疗服务市场增长驱动因素分析报告
- 2026年中考理综终极押题模拟密卷(山东专用)
- 2025年合肥社区工作者笔试真题附答案
- (2025年)《装饰装修工程质量培训》考试试题附答案
- 2025版中国心房颤动管理指南解读课件
- 2026年重庆市八年级地理生物会考考试题库(含答案)
- csco结直肠癌指南2026
- 2026年中小学教师编制考试体育学科专业知识考试试卷及答案(共五套)
- 山区防汛安全课件
- 2026年中国美容个护成分趋势榜单-
评论
0/150
提交评论