STM32 V5 source code
guowenxue
2018-05-16 8a8715e9d87d63c5908f8e00d1b5fe3595e41c41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/****************************************************************************
*   Copyright: (C)2018 Î人ÁèÔÆÎïÍøÖÇ¿ÆÊµÑéÊÒ www.iot-yun.com
*      Author: GuoWenxue<guowenxue@gmail.com> QQ: 281143292
* Description: ·Ü¶·STM32v5¿ª·¢°å ´®¿ÚʹÓóÌÐò
*   ChangeLog:
*        °æ±¾ºÅ     ÈÕÆÚ       ×÷Õß      ËµÃ÷
*        V1.0.0  2018.05.11  GuoWenxue   ·¢²¼¸Ã°æ±¾
****************************************************************************/
 
#include <stdio.h>
#include <string.h>
#include "stm32f10x.h"
#include "stm32v5_led.h"
#include "stm32v5_usart.h"
 
void delay(uint32_t count)
{
   while(count--)   ;
   
   return ;
}
 
 
int main(void)
{
    uint8_t                   which=USART_PORT1;
    uint8_t                   g_TxBuf[RXBUF_SIZE];
    uint8_t                   g_TxLen = 0;
    
    init_led_gpio();
    turn_led(LED1, ON);
    
    init_dbg_uart(which, 115200);
    printf("\nUSART%d test program verison 1.0.0\n", which);
    
    delay(0x4FFFFF);
    
    while(1)
    {
#if 0    /* ¸Ã´úÂëΪ¼òµ¥²âÊÔ´úÂë */
        turn_led(LED3, ON);
        usart_puts("Hello World!\n");
        delay(0x4FFFFF);
        
        turn_led(LED3, OFF);
        printf("Goodbye World!\n");
        delay(0x4FFFFF);
#else /* ¸Ã´úÂëÓÃÀ´½«½ÓÊÕµ½µÄÒ»ÐÐÊý¾Ý(\r\n½áβ)»Ø´«»ØÈ¥ */
        if( g_RxEnd_Flag  )
        {
            turn_led(LED3, ON);
            
            memset(g_TxBuf, 0, sizeof(g_TxBuf));  /* ½«·¢ËÍbufferÀïÃæµÄÊý¾ÝÇåÁã */
            memcpy(g_TxBuf, g_RxBuf, g_RxLen);    /* ½«½ÓÊÕbufferÀïÃæµÄÊý¾Ý¿½±´µ½·¢ËÍbufferÖÐÈ¥*/
            
             g_TxLen = g_RxLen;                    /* ½«·¢ËÍÊý¾Ý³¤¶ÈÉèÖÃΪ½ÓÊÕµ½µÄÊý¾Ý³¤¶È */
             g_RxLen = 0;
             g_RxEnd_Flag = 0;                     /* ½«½ÓÊÕÊý¾ÝÍê³É±êʶÉèΪ0, ÕâÑù´®¿Ú½ÓÊÕÖжϾÍÄܼÌÐø¿ªÊ¼½ÓÊÕÊý¾ÝÁË */
            
             usart_send_data(g_TxBuf, g_TxLen);    /* ½«½ÓÊÕµ½µÄÊý¾Ý»Ø´«»ØÈ¥ */
            turn_led(LED3, OFF);
        }
#endif
    }
}