utopia_xu

stm32程序-1

0
阅读(2205)

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

*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;
     }
}