"#include "stm32f4xx.h" //包含STM32F4系列芯片的头文件\n#include "stm32f4xx_hal.h" //包含HAL库的头文件\n\nUART_HandleTypeDef huart1; //定义一个串口句柄变量\n\nvoid SystemClock_Config(void);\n\nvoid UART_Init(void);\n\nint main(void)\n{\n HAL_Init(); //初始化HAL库\n SystemClock_Config(); //配置系统时钟\n\n UART_Init(); //初始化串口\n\n while (1)\n {\n char *data = "Hello, World!\r\n";\n HAL_UART_Transmit(&huart1, (uint8_t *)data, strlen(data), HAL_MAX_DELAY); //发送数据到串口1\n HAL_Delay(1000); //延时1秒\n }\n}\n\nvoid SystemClock_Config(void)\n{\n RCC_OscInitTypeDef RCC_OscInitStruct;\n RCC_ClkInitTypeDef RCC_ClkInitStruct;\n\n __HAL_RCC_PWR_CLK_ENABLE();\n __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);\n\n RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;\n RCC_OscInitStruct.HSIState = RCC_HSI_ON;\n RCC_OscInitStruct.HSICalibrationValue = 16;\n RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;\n if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)\n {\n Error_Handler();\n }\n\n RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;\n RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;\n RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;\n RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;\n RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;\n if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)\n {\n Error_Handler();\n }\n}\n\nvoid UART_Init(void)\n{\n huart1.Instance = USART1; //使用USART1串口\n huart1.Init.BaudRate = 115200; //波特率为115200\n huart1.Init.WordLength = UART_WORDLENGTH_8B; //数据位为8位\n huart1.Init.StopBits = UART_STOPBITS_1; //停止位为1位\n huart1.Init.Parity = UART_PARITY_NONE; //无奇偶校验\n huart1.Init.Mode = UART_MODE_TX_RX; //发送和接收模式\n huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; //无硬件流控制\n huart1.Init.OverSampling = UART_OVERSAMPLING_16; //采样率为16\n if (HAL_UART_Init(&huart1) != HAL_OK)\n {\n Error_Handler();\n }\n}\n\nvoid Error_Handler(void)\n{\n while (1)\n {\n }\n}\n\n#ifdef USE_FULL_ASSERT\nvoid assert_failed(uint8_t *file, uint32_t line)\n{\n}\n#endif\n"。上述代码仅仅是一个简单的示例,仅初始化了串口1,并发送了一段字符串。在实际应用中,可能还需要配置串口的中断、接收数据等功能。具体的初始化和使用方法可以参考STM32的官方文档和HAL库的使用手册。


原文地址: https://www.cveoy.top/t/topic/px4O 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录