最近因为要调试一个SMS发送短信的模块,该模块需求发送一系列AT指令,且需求字符串发送,可是STM32官方给的usart.c中并没有直接发送字符串的函数,因而写了一个发送字符串的函数。
其实发送字符串的实质仍是发送一个个字符,所以只需在字符串完毕标志之前,循环发送字符即可。不罗嗦,上程序。
//程序功用:使用串口发送一个字符串
// 参数:USARTx USART编号 可取 USART1、USART2、USART3、USART4、 USART5(STM32F103ZET6)
str 需求发送的字符串
#include “stm32f10x.h”
void Usart_SendString(USART_TypeDef* USARTx,char *str)
{
while(*str)
{
while(!USART_GetFlagStatus(USARTx,USART_FLAG_TXE)); //判别是否能够发送
USART_SendData(USARTx,*str);
while(USART_GetFlagStatus(USARTx, USART_FLAG_TC)); //判别是否发送完结,此句必须有,否则会造
//成只发送最终一个字符(掩盖)
str++;
}
}