stm32程序-1
0赞/***************************************************
*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;
}
}