
创建工程

启用引脚

设置LED的引脚 PC13

设置串口通信

设置DMA
USART_RX 设置为循环接收 circular
USART_TX 设置为正常发送 normal

使能串口通信

配置时钟

项目命名

配置写入

int main(void)
{
/* USER CODE BEGIN 1 */
char str[12] = "Hello World\n";
char recv_buf[12] = {0};
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
HAL_UART_Transmit(&huart1, (uint8_t*)str, 12, 0xFFFF);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
if(HAL_OK == HAL_UART_Receive(&huart1, (uint8_t*)recv_buf, 1, 0xFFFF))
{
HAL_UART_Transmit(&huart1, (uint8_t*)recv_buf, 1, 0xFFFF);
}
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
本文档详细介绍了如何在STM32微控制器上配置GPIO引脚以驱动LED,并设置串口通信和DMA进行数据传输。通过启用DMA,实现USART_RX的循环接收和USART_TX的正常发送,确保高效的数据交换。在无限循环中,程序持续接收并回传接收到的数据,展示了基本的串口通信应用。
1689

被折叠的 条评论
为什么被折叠?



