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
67
68
69
70
71
72
73
74
/****************************************************************************
*   Copyright: (C)2018 Î人ÁèÔÆÎïÍøÖÇ¿ÆÊµÑéÊÒ www.iot-yun.com
*      Author: GuoWenxue<guowenxue@gmail.com> QQ: 281143292
* Description: ·Ü¶·STM32v5¿ª·¢°å ´®¿Ú²Ù×÷º¯Êý½Ó¿Ú,printf¹³×Óº¯Êýfputc
*   ChangeLog:
*        °æ±¾ºÅ     ÈÕÆÚ       ×÷Õß      ËµÃ÷
*        V1.0.0  2018.05.11  GuoWenxue   ·¢²¼¸Ã°æ±¾
****************************************************************************/
 
#ifndef __STM32V5_USART_H
#define __STM32V5_USART_H
 
#include "stm32f10x_usart.h"
 
#define USART_PORT1               1
#define USART_PORT2               2
 
#define RXIRQ_ENB                 1
#define RXIRQ_DIS                 0
 
 
#define RXBUF_SIZE                128
extern uint8_t                    g_RxBuf[];
extern uint8_t                    g_RxLen;
extern uint8_t                    g_RxEnd_Flag;
 
 
/* º¯Êý˵Ã÷:  ÅäÖô®¿ÚGPIO¿ÚºÍʱÖÓ£»
 * ²ÎÊý˵Ã÷:  whichÖ¸¶¨ÒªÅäÖõĴ®¿Ú,ÆäÖµÓ¦¸ÃΪ USART_PORT1 »ò USART_PORT2
 * ·µ»ØÖµ:    ÎÞ
 */
void init_usart_gpio(int which);
 
 
/* º¯Êý˵Ã÷:  ÅäÖô®¿ÚµÄ²¨ÌØÂÊ¡¢Êý¾Ýλ¡¢ÆæÅ¼Ð£Ñéλ¡¢Í£Ö¹Î»¡¢Á÷¿ØµÈ£»
 * ²ÎÊý˵Ã÷:  whichÖ¸¶¨ÒªÅäÖõĴ®¿Ú,ÆäÖµÓ¦¸ÃΪ USART_PORT1 »ò USART_PORT2
 *            baudrate: ²¨ÌØÂÊ,ÆäֵΪ: 115200,9600,4800,2400,1200....
 *            rxirq: ÊÇ·ñʹÄܽÓÊÕÖжÏ, RXIRQ_ENB(!0): Ê¹ÄÜ   RXIRQ_DIS(0): ²»Ê¹ÄÜ
 * ·µ»ØÖµ:    ÎÞ
 */
void config_usart(uint8_t which, uint32_t baudrate, uint8_t  rxirq);
 
 
/* º¯Êý˵Ã÷: Í¨¹ýÖ¸¶¨´®¿Ú·¢ËÍÒ»¸ö×Ö·û 
 * ²ÎÊý˵Ã÷: usartÖ¸¶¨Äĸö´®¿Ú, USART1 »ò USART2
 *           ch ÊÇÒª·¢Ë͵Ä×Ö·û
 * ·µ»ØÖµ:   ÎÞ
 */
__inline void usart_putchar(USART_TypeDef* usart, uint8_t ch);
 
/* º¯Êý˵Ã÷: ³õʼ»¯µ÷ÊÔ´®¿Ú,²¢Ö¸¶¨ÏàÓ¦µÄ´®¿ÚΪµ÷ÊÔ´®¿Ú
 * ²ÎÊý˵Ã÷: which²ÎÊýÖ¸¶¨Ê¹ÓÃÄĸö´®¿Ú, ÆäÖµÓ¦¸ÃÊÇ USART_PORT1 »ò USART_PORT2 
 * ·µ»ØÖµ£º  ÎÞ
 */
extern void init_dbg_uart(int which, uint32_t baudrate);
 
 
/* º¯Êý˵Ã÷: Íùµ÷ÊÔ´®¿Ú·¢ËÍ n ¸ö×Ö½ÚÊý¾Ý
 * ²ÎÊý˵Ã÷: data Ö¸ÏòҪͨ¹ý´®¿Ú·¢Ë͵ÄÊý¾Ý
 *           len  Ö¸ÏòҪͨ¹ý´®¿Ú·¢Ë͵ÄÊý¾Ý³¤¶È
 * ·µ»ØÖµ£º  ÎÞ
 */
void usart_send_data(uint8_t *data, uint32_t len);
 
 
/* º¯Êý˵Ã÷: Íùµ÷ÊÔ´®¿Ú·¢ËÍ×Ö·û´®, ×Ö·û´®ÒÔ \0 ½áβ
 * ²ÎÊý˵Ã÷: str Ö¸ÏòÒª·¢Ë͵Ä×Ö·û´®ÄÚÈÝ
 * ·µ»ØÖµ£º  ÎÞ
 */
extern void usart_puts(const char *str);
 
 
#endif