新手上路
- 积分
- 31
- 金钱
- 31
- 注册时间
- 2023-5-28
- 在线时间
- 3 小时
|
下面是主函数和配置串口的.c文件 编译没问题 但是用串口调试助手调试功能时 数据可以 发送出去 但是再接收 接受不回来,求助各位大佬帮我看看怎么回事儿 感谢各位!!!!
main.c:#include "stm32f4xx_hal.h"
#include "rcc.h"
#include "uart.h"
#define RX_SIZE 200
uint8_t buff[256];
int main(void)
{
HAL_Init();
sys_stm32_clock_init(336, 8, 2, 7);
U1_Init(115200);
while(1){
switch(HAL_UART_Receive(&uart1,buff,RX_SIZE,200000)){
case HAL_OK: HAL_UART_Transmit(&uart1,buff,RX_SIZE,200000);
break;
case HAL_TIMEOUT: if(uart1.RxXferCount != (RX_SIZE)){
HAL_UART_Transmit(&uart1,buff,uart1.RxXferCount,200000);
}
break;
}
}
}
uart.c:
#include "stm32f4xx_hal.h"
#include "uart.h"
UART_HandleTypeDef uart1;
void U1_Init(uint32_t bandrate){
uart1.Instance = USART1;
uart1.Init.BaudRate = bandrate;
uart1.Init.WordLength = UART_WORDLENGTH_8B;
uart1.Init.StopBits = UART_STOPBITS_1;
uart1.Init.Parity = UART_PARITY_NONE;
uart1.Init.Mode = UART_MODE_TX_RX;
uart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
HAL_UART_Init(&uart1);
}
void HAL_UART_MspInit(UART_HandleTypeDef *huart){
GPIO_InitTypeDef GPIO_InitType;
if(huart->Instance == USART1){
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_USART1_CLK_ENABLE();
GPIO_InitType.Pin = GPIO_PIN_9;
GPIO_InitType.Mode = GPIO_MODE_AF_PP;
GPIO_InitType.Pull = GPIO_PULLUP;
GPIO_InitType.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitType.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(GPIOA,&GPIO_InitType);
GPIO_InitType.Pin = GPIO_PIN_10;
GPIO_InitType.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(GPIOA,&GPIO_InitType);
}
}
|
|