/**************************************************************************** * Copyright: (C)2018 Î人ÁèÔÆÎïÍøÖÇ¿ÆÊµÑéÊÒ www.iot-yun.com * Author: GuoWenxue 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