修改驱动程序

This commit is contained in:
2584532475@qq.com committed 2023-05-19 18:02:00 +08:00
1 parent 063c3fcc07
commit a69c1a58d6
39 files changed
+1627 -641

No files matched your search

+1 -119
View File
@@ -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 */