utopia_xu

stm32程序-1

0
阅读(874)

/***************************************************

*name: 串口程序

*fuction: 1,不用printf发送一个字符串到串口

2,发送一个数字到串口

*other: no

*version: v1.0

*author: xu沫尘

time:2017-3-31

***************************************************/
///////////////////////////////////////////////////

#include"led.h"
#include"usart.h"
#include"delay.h"

//定义一个子函数,用来发送字符串
void uart1_send_string(char *a )
{
while(*a!='\0') //字符串都是以 '\0' 结尾的
{
USART_SendData(USART1,*a); //指针指向字符串
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
*a++; //指针自加
}
}

//定义一个子函数用来发送数字

void uart1_send_num(u32 num)

{

u8 a[11]={0};

u32 b[11]={0};

u8 i=0;

b[0]=num;

while(b[i]!=0)

{

b[i+1]=b[i]/10;

i++;

}

while(i--)

{

a[i]=b[i]%10+'0';//把数字转换为字符

USART1->SR;//不加上这句就会有错误,不知道为什么

USART_SendData(USART1,a[i]);

while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束

}

}


int main(void)
{

u32 x=0;

LED_Init();
delay_init();
uart_init();
while(1)
{

x++;

if(x>10000)

x=0;

uart1_send_num(x);

uart1_send_string("hello123 world\n");
delay_ms(50);
LED1=!LED1;
}
}


Baidu
map