105 lines
3.2 KiB
C
105 lines
3.2 KiB
C
|
/**
|
|||
|
******************************************************************************
|
|||
|
* @file bsp_debug_usart.c
|
|||
|
* @author fire
|
|||
|
* @version V1.0
|
|||
|
* @date 2016-xx-xx
|
|||
|
* @brief ʹ<EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>c<EFBFBD><EFBFBD>printf<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>usart<EFBFBD>˿ڣ<EFBFBD><EFBFBD>жϽ<EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
******************************************************************************
|
|||
|
* @attention
|
|||
|
*
|
|||
|
* ʵ<EFBFBD><EFBFBD>ƽ̨:<EFBFBD><EFBFBD><EFBFBD><EFBFBD> STM32 H750 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD>̳ :http://www.firebbs.cn
|
|||
|
* <EFBFBD>Ա<EFBFBD> :http://firestm32.taobao.com
|
|||
|
*
|
|||
|
******************************************************************************
|
|||
|
*/
|
|||
|
#include "./usart/bsp_debug_usart.h"
|
|||
|
|
|||
|
UART_HandleTypeDef UartHandle;
|
|||
|
extern uint8_t ucTemp;
|
|||
|
/**
|
|||
|
* @brief DEBUG_USART GPIO <EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>115200 8-N-1
|
|||
|
* @param <EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
void DEBUG_USART_Config(void)
|
|||
|
{
|
|||
|
GPIO_InitTypeDef GPIO_InitStruct;
|
|||
|
|
|||
|
RCC_PeriphCLKInitTypeDef RCC_PeriphClkInit;
|
|||
|
|
|||
|
DEBUG_USART_RX_GPIO_CLK_ENABLE();
|
|||
|
DEBUG_USART_TX_GPIO_CLK_ENABLE();
|
|||
|
|
|||
|
/* <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>1ʱ<31><CAB1>Դ*/
|
|||
|
RCC_PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1;
|
|||
|
RCC_PeriphClkInit.Usart16ClockSelection = RCC_USART16CLKSOURCE_D2PCLK2;
|
|||
|
HAL_RCCEx_PeriphCLKConfig(&RCC_PeriphClkInit);
|
|||
|
/* ʹ<>ܴ<EFBFBD><DCB4><EFBFBD>1ʱ<31><CAB1> */
|
|||
|
DEBUG_USART_CLK_ENABLE();
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD>Tx<54><78><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ù<EFBFBD><C3B9><EFBFBD> */
|
|||
|
GPIO_InitStruct.Pin = DEBUG_USART_TX_PIN;
|
|||
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|||
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
|||
|
GPIO_InitStruct.Alternate = DEBUG_USART_TX_AF;
|
|||
|
HAL_GPIO_Init(DEBUG_USART_TX_GPIO_PORT, &GPIO_InitStruct);
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD>Rx<52><78><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ù<EFBFBD><C3B9><EFBFBD> */
|
|||
|
GPIO_InitStruct.Pin = DEBUG_USART_RX_PIN;
|
|||
|
GPIO_InitStruct.Alternate = DEBUG_USART_RX_AF;
|
|||
|
HAL_GPIO_Init(DEBUG_USART_RX_GPIO_PORT, &GPIO_InitStruct);
|
|||
|
|
|||
|
/* <20><><EFBFBD>ô<EFBFBD>DEBUG_USART ģʽ */
|
|||
|
UartHandle.Instance = DEBUG_USART;
|
|||
|
UartHandle.Init.BaudRate = 115200;
|
|||
|
UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
|
|||
|
UartHandle.Init.StopBits = UART_STOPBITS_1;
|
|||
|
UartHandle.Init.Parity = UART_PARITY_NONE;
|
|||
|
UartHandle.Init.Mode = UART_MODE_TX_RX;
|
|||
|
UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
|||
|
UartHandle.Init.OverSampling = UART_OVERSAMPLING_16;
|
|||
|
UartHandle.Init.OneBitSampling = UART_ONEBIT_SAMPLING_DISABLED;
|
|||
|
UartHandle.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
|||
|
HAL_UART_Init(&UartHandle);
|
|||
|
|
|||
|
/*<2A><><EFBFBD><EFBFBD>1<EFBFBD>жϳ<D0B6>ʼ<EFBFBD><CABC> */
|
|||
|
HAL_NVIC_SetPriority(DEBUG_USART_IRQ, 0, 0);
|
|||
|
HAL_NVIC_EnableIRQ(DEBUG_USART_IRQ);
|
|||
|
/*<2A><><EFBFBD>ô<EFBFBD><C3B4>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>ж<EFBFBD> */
|
|||
|
__HAL_UART_ENABLE_IT(&UartHandle,UART_IT_RXNE);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/***************** <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> **********************/
|
|||
|
void Usart_SendString(uint8_t *str)
|
|||
|
{
|
|||
|
unsigned int k=0;
|
|||
|
do
|
|||
|
{
|
|||
|
HAL_UART_Transmit( &UartHandle,(uint8_t *)(str + k) ,1,1000);
|
|||
|
k++;
|
|||
|
} while(*(str + k)!='\0');
|
|||
|
|
|||
|
}
|
|||
|
///<2F>ض<EFBFBD><D8B6><EFBFBD>c<EFBFBD>⺯<EFBFBD><E2BAAF>printf<74><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DEBUG_USART<52><54><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>printf<74><66><EFBFBD><EFBFBD>
|
|||
|
int fputc(int ch, FILE *f)
|
|||
|
{
|
|||
|
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>DEBUG_USART */
|
|||
|
HAL_UART_Transmit(&UartHandle, (uint8_t *)&ch, 1, 1000);
|
|||
|
|
|||
|
return (ch);
|
|||
|
}
|
|||
|
|
|||
|
///<2F>ض<EFBFBD><D8B6><EFBFBD>c<EFBFBD>⺯<EFBFBD><E2BAAF>scanf<6E><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DEBUG_USART<52><54><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>scanf<6E><66>getchar<61>Ⱥ<EFBFBD><C8BA><EFBFBD>
|
|||
|
int fgetc(FILE *f)
|
|||
|
{
|
|||
|
|
|||
|
int ch;
|
|||
|
HAL_UART_Receive(&UartHandle, (uint8_t *)&ch, 1, 1000);
|
|||
|
return (ch);
|
|||
|
}
|
|||
|
/*********************************************END OF FILE**********************/
|