修改驱动程序
This commit is contained in:
1 parent
063c3fcc07
commit
a69c1a58d6
39 files changed
+1627
-641
No files matched your search
+1
-119
@@ -24,21 +24,8 @@
|
||||
|
||||
|
||||
|
||||
__IO static uint32_t s_UartRecvTimer[UartMax] = {0, 0, 0, 0, 0, 0, 0, 0};
|
||||
// static USART_TypeDef *UARTInstance[UartMax] = {LPUART1, LPUART2, USART1, USART2, USART3, USART4, USART5, USART6};
|
||||
static char s_u2RxBuf[USART2_MAX_LENGTH];
|
||||
static char s_u4RxBuf[USART4_MAX_LENGTH];
|
||||
|
||||
UartBuff_t s_Ubuffer[UartMax];
|
||||
|
||||
void uart_SystemTick (void)
|
||||
{
|
||||
for (int i = 0; i < UartMax; i++)
|
||||
{
|
||||
if (s_UartRecvTimer[i] > 1)
|
||||
s_UartRecvTimer[i]--;
|
||||
}
|
||||
}
|
||||
|
||||
/* USER CODE END 0 */
|
||||
|
||||
@@ -191,8 +178,6 @@ void MX_USART2_UART_Init(void)
|
||||
|
||||
/* USER CODE BEGIN USART2_Init 0 */
|
||||
|
||||
s_Ubuffer[Uart2].rxBuf = s_u2RxBuf;
|
||||
s_Ubuffer[Uart2].rxMaxLen = USART2_MAX_LENGTH;
|
||||
/* USER CODE END USART2_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN USART2_Init 1 */
|
||||
@@ -281,8 +266,6 @@ void MX_USART4_UART_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN USART4_Init 0 */
|
||||
s_Ubuffer[Uart4].rxBuf = s_u4RxBuf;
|
||||
s_Ubuffer[Uart4].rxMaxLen = USART4_MAX_LENGTH;
|
||||
/* USER CODE END USART4_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN USART4_Init 1 */
|
||||
@@ -625,7 +608,7 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
||||
*/
|
||||
GPIO_InitStruct.Pin = U485_TX_Pin|U485_RX_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF8_USART5;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
@@ -886,108 +869,7 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
void MX_UART_IRQHandle (void)
|
||||
{
|
||||
uint8_t ret;
|
||||
if (USART2->ISR & (1 << 5))
|
||||
{
|
||||
ret = USART2->RDR;
|
||||
|
||||
if (s_Ubuffer[Uart2].rxBuf != NULL)
|
||||
{
|
||||
s_Ubuffer[Uart2].rxBuf[s_Ubuffer[Uart2].rxLen++] = ret;
|
||||
s_UartRecvTimer[Uart2] = 30;
|
||||
if (s_Ubuffer[Uart2].rxLen > s_Ubuffer[Uart2].rxMaxLen)
|
||||
s_Ubuffer[Uart2].rxLen = 0;
|
||||
}
|
||||
}
|
||||
if (USART4->ISR & (1 << 5))
|
||||
{
|
||||
ret = USART4->RDR;
|
||||
if (s_Ubuffer[Uart4].rxBuf != NULL)
|
||||
{
|
||||
s_Ubuffer[Uart4].rxBuf[s_Ubuffer[Uart4].rxLen++] = ret;
|
||||
s_UartRecvTimer[Uart4] = 30;
|
||||
if (s_Ubuffer[Uart4].rxLen > s_Ubuffer[Uart4].rxMaxLen)
|
||||
s_Ubuffer[Uart4].rxLen = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int MX_UART_IsReady (Uart_t uart)
|
||||
{
|
||||
uint32_t ret = s_UartRecvTimer[uart];
|
||||
return ret;
|
||||
}
|
||||
|
||||
void MX_UART_Clear (Uart_t uart)
|
||||
{
|
||||
s_UartRecvTimer[uart] = 0;
|
||||
s_Ubuffer[uart].rxLen = 0;
|
||||
}
|
||||
int MX_UART_ReadData (Uart_t uart, char *buff, int maxLength)
|
||||
{
|
||||
int length = 0;
|
||||
if (s_Ubuffer[uart].rxBuf != NULL)
|
||||
{
|
||||
length = (maxLength > s_Ubuffer[uart].rxLen) ? s_Ubuffer[uart].rxLen : maxLength;
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
buff[i] = s_Ubuffer[uart].rxBuf[i];
|
||||
}
|
||||
}
|
||||
return length;
|
||||
}
|
||||
|
||||
void MX_UART_PutChar (Uart_t uart, char ch)
|
||||
{
|
||||
switch (uart)
|
||||
{
|
||||
case LpUart1:
|
||||
HAL_UART_Transmit (&hlpuart1, (uint8_t *) &ch, 1, 1000);
|
||||
break;
|
||||
case LpUart2:
|
||||
HAL_UART_Transmit (&hlpuart2, (uint8_t *) &ch, 1, 1000);
|
||||
break;
|
||||
case Uart1:
|
||||
HAL_UART_Transmit (&huart1, (uint8_t *) &ch, 1, 1000);
|
||||
break;
|
||||
case Uart2:
|
||||
HAL_UART_Transmit (&huart2, (uint8_t *) &ch, 1, 1000);
|
||||
break;
|
||||
case Uart3:
|
||||
HAL_UART_Transmit (&huart3, (uint8_t *) &ch, 1, 1000);
|
||||
break;
|
||||
case Uart4:
|
||||
HAL_UART_Transmit (&huart4, (uint8_t *) &ch, 1, 1000);
|
||||
break;
|
||||
case Uart5:
|
||||
HAL_UART_Transmit (&huart5, (uint8_t *) &ch, 1, 1000);
|
||||
break;
|
||||
case Uart6:
|
||||
HAL_UART_Transmit (&huart6, (uint8_t *) &ch, 1, 1000);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void MX_UART_PutBuffer (Uart_t uart, char *buff, int size)
|
||||
{
|
||||
for (int i = 0; i < size; i++)
|
||||
{
|
||||
MX_UART_PutChar (uart, buff[i]);
|
||||
}
|
||||
}
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
// ÖØ¶¨Òåfputcº¯Êý
|
||||
int fputc (int ch, FILE *f)
|
||||
{
|
||||
HAL_UART_Transmit (&huart2, (uint8_t *) &ch, 1, 2000);
|
||||
return ch;
|
||||
}
|
||||
|
||||
|
||||
/* USER CODE END 1 */
|
||||
Reference in new issue
Block a user