/****************************************************************************
|
* Copyright: (C)2018 Î人ÁèÔÆÎïÍøÖÇ¿ÆÊµÑéÊÒ www.iot-yun.com
|
* Author: GuoWenxue<guowenxue@gmail.com> QQ: 281143292
|
* Description: STM32L151C8T6 CubeMX ¿ª·¢°å printfºÍ´®¿Ú³õʼ»¯º¯Êý
|
*
|
* ChangeLog:
|
* °æ±¾ºÅ ÈÕÆÚ ×÷Õß ËµÃ÷
|
* V1.0.0 2018.11.05 GuoWenxue ·¢²¼¸Ã°æ±¾
|
****************************************************************************/
|
|
#ifndef __STM32_USART_H_
|
#define __STM32_USART_H_
|
|
#include "stm32l1xx_usart.h"
|
|
#define USART_PUTCHR(COM, ch) { USART_SendData(COM, ch); while (USART_GetFlagStatus(COM, USART_FLAG_TC) == RESET) ; }
|
|
enum
|
{
|
USART_PORT1,
|
USART_PORT2,
|
USART_PORT3,
|
USART_MAX,
|
};
|
|
typedef struct stm32_usart_pins_s
|
{
|
USART_TypeDef *USARTx; /* USART1¡¢USART2¡¢USART3 */
|
GPIO_TypeDef *group; /* GPIOx: GPIOA¡¢GPIOB */
|
uint16_t txpin; /* GPIO_Pin: GPIO_Pin_2 */
|
uint16_t rxpin; /* GPIO_Pin: GPIO_Pin_3 */
|
uint16_t txpin_src; /* GPIO_PinSource: GPIO_PinSource2 */
|
uint16_t rxpin_src; /* GPIO_PinSource: GPIO_PinSource3 */
|
uint8_t gpio_af; /* GPIO_AF: GPIO_AF_USART1*/
|
uint32_t usart_clk; /* USART clock: RCC_APB1Periph_USART1 */
|
uint16_t gpio_clk; /* USART Tx/Rx Pin Clock: RCC_AHBPeriph_GPIOA */
|
} stm32_usart_pins_t;
|
|
|
/* º¯Êý˵Ã÷: ÅäÖô®¿ÚµÄ²¨ÌØÂÊ¡¢Êý¾Ýλ¡¢ÆæÅ¼Ð£Ñéλ¡¢Í£Ö¹Î»¡¢Á÷¿ØµÈ£»
|
* ²ÎÊý˵Ã÷: whichÖ¸¶¨ÒªÅäÖõĴ®¿Ú,ÆäÖµÓ¦¸ÃΪ USART_PORT1¡¢USART_PORT2¡¢USART_PORT3£¬¶¨ÒåÔÚstm32_usart.hÖУ»
|
* baudrate: ²¨ÌØÂÊ,ÆäֵΪ: 115200,9600,4800,2400,1200....
|
* rxirq: ÊÇ·ñʹÄܽÓÊÕÖжϣ» 1->ʹÄÜ 0->²»Ê¹ÄÜ
|
* txirq: ÊÇ·ñʹÄÜ·¢ËÍÖжϣ» 1->ʹÄÜ 0->²»Ê¹ÄÜ
|
* ·µ»ØÖµ: ÎÞ
|
*/
|
#define RXIRQ_ENABLE 1
|
#define RXIRQ_DISABLE 0
|
#define TXIRQ_ENABLE 1
|
#define TXIRQ_DISABLE 0
|
extern void stm32_init_usart(uint8_t which, uint32_t baudrate, uint8_t txirq, uint8_t rxirq);
|
|
/* º¯Êý˵Ã÷: ³õʼ»¯µ÷ÊÔ´®¿Ú,²¢Ö¸¶¨ÏàÓ¦µÄ´®¿ÚΪprintfº¯ÊýµÄÊä³ö´®¿Ú
|
* ²ÎÊý˵Ã÷: whichÖ¸¶¨ÒªÅäÖõĴ®¿Ú,ÆäÖµÓ¦¸ÃΪ USART_PORT1¡¢USART_PORT2¡¢USART_PORT3£¬¶¨ÒåÔÚstm32_usart.hÖУ»
|
* baudrate: ²¨ÌØÂÊ,ÆäֵΪ: 115200,9600,4800,2400,1200....
|
* ·µ»ØÖµ£º ÎÞ
|
*/
|
extern void stm32_init_printf(uint8_t which, uint32_t baudrate);
|
|
/* º¯Êý˵Ã÷: Íùµ÷ÊÔ´®¿Ú·¢ËÍ×Ö·û´®
|
* ²ÎÊý˵Ã÷: str Ö¸ÏòÒª·¢Ë͵Ä×Ö·û´®ÄÚÈÝ
|
* ·µ»ØÖµ£º ÎÞ
|
*/
|
extern void usart_puts(const char *str);
|
|
|
#endif
|