当前位置: 首页 > news >正文

STM32F103RCT6+STM32CubeMX+keil5(MDK-ARM)+Flymcu完成固定长度的数据的收发

1、要用到 串口调试助手.exe

2、外设配置

3、代码main.c

/* USER CODE BEGIN Header */
/********************************************************************************* @file           : main.c* @brief          : Main program body******************************************************************************* @attention** Copyright (c) 2025 STMicroelectronics.* All rights reserved.** This software is licensed under terms that can be found in the LICENSE file* in the root directory of this software component.* If no LICENSE file comes with this software, it is provided AS-IS.********************************************************************************/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "usart.h"
#include "gpio.h"/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes *//* USER CODE END Includes *//* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD *//* USER CODE END PTD *//* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD *//* USER CODE END PD *//* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM *//* USER CODE END PM *//* Private variables ---------------------------------------------------------*//* USER CODE BEGIN PV */
uint8_t RxBuffer[5];        //数据缓冲区定义
uint8_t Tx_str2[] = "\r\n";
/* USER CODE END PV *//* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP *//* USER CODE END PFP *//* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 *//* USER CODE END 0 *//*** @brief  The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 *//* 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 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 *///5个字符接收完成后if(HAL_UART_Receive(&huart1,RxBuffer,5,3000) == HAL_OK){HAL_UART_Transmit(&huart1,Tx_str2,sizeof(Tx_str2),1000);    //uint16_t Size一定要与所发字符串长度一致否则容易导致异常!HAL_UART_Transmit(&huart1,RxBuffer,5,1000); //将接收的字样原封不动传回PC}}/* USER CODE END 3 */
}/*** @brief System Clock Configuration* @retval None*/
void SystemClock_Config(void)
{RCC_OscInitTypeDef RCC_OscInitStruct = {0};RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};/** Initializes the RCC Oscillators according to the specified parameters* in the RCC_OscInitTypeDef structure.*/RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;RCC_OscInitStruct.HSEState = RCC_HSE_ON;RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;RCC_OscInitStruct.HSIState = RCC_HSI_ON;RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){Error_Handler();}/** Initializes the CPU, AHB and APB buses clocks*/RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK){Error_Handler();}
}/* USER CODE BEGIN 4 *//* USER CODE END 4 *//*** @brief  This function is executed in case of error occurrence.* @retval None*/
void Error_Handler(void)
{/* USER CODE BEGIN Error_Handler_Debug *//* User can add his own implementation to report the HAL error return state */__disable_irq();while (1){}/* USER CODE END Error_Handler_Debug */
}
#ifdef USE_FULL_ASSERT
/*** @brief  Reports the name of the source file and the source line number*         where the assert_param error has occurred.* @param  file: pointer to the source file name* @param  line: assert_param error line source number* @retval None*/
void assert_failed(uint8_t *file, uint32_t line)
{/* USER CODE BEGIN 6 *//* User can add his own implementation to report the file name and line number,ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) *//* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */

4、flymcu烧录:生成和烧录参考:https://blog.csdn.net/weixin_46406816/article/details/151611352?spm=1001.2014.3001.5502

5、烧录

6、串口助手打开设置好,串口发送五个字符会收到相同的回复

http://www.dtcms.com/a/466141.html

相关文章:

  • 5. React中的组件:组件是什么;React定义组件
  • 三十、钙钛矿量子点专业词汇(我爱钙钛矿)
  • 云手机 流畅运行
  • 从 “跨域报错到彻底解决”:Spring Boot+Security+JWT 实战踩坑指南
  • 嵌入模型蓝图与扫盲
  • 中核华泰建设有限公司网站小游戏网站网址
  • 做网站技术服务费属于什么科目做ppt好用的网站有哪些
  • 简单网站建设方案icp备案查询官方网站
  • Python中内置的常用装饰器
  • 年度进化挑战:从“前端实现者”到“智能体协作者”与“复杂问题定义者”
  • 靠谱的CC公益站
  • 做网站哪家便宜如何做企业招聘网站
  • HI3798MV100 运营商机顶盒NAS LINUX OS - IP地址静态绑定指南
  • 外贸网站建设公司价格湛江建站程序
  • 第三章:字符串增强与模板字符串
  • 网站开发建设技术规范书没经验可以做电商运营吗
  • Jira:设置语言 / 创建史诗 / 创建冲刺 / 创建问题
  • CancellationToken与Abort
  • linux达梦数据库操作
  • [自荐]一款mac电脑历史剪切板工具,类似著名的Paste
  • 二级域名可以做不同的网站吗网站建设网络推广广告语
  • MapReduce简介
  • FreeType 2.7 – 卓越的 Linux 字体质量
  • 龙江建站技术wordpress 管理 主题
  • 企业网站建设 制作网站建设基本流程流程图
  • 【Homebrew安装 MySQL 】macOS 用 Homebrew 安装 MySQL 完整教程
  • 【图像处理基石】暗光增强算法入门:从原理到实战(Python+OpenCV)
  • Asp.net core Kestrel服务器详解
  • OpenFeign使用
  • 如何在鸿蒙中实现毫秒级数据检索?哈希表与二分查找的双引擎优化方案