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

利用STM32CubeMX快速创建点灯带调试输出工程案例

利用STM32CubeMX快速创建点灯带调试输出工程案例


  • ✨这里以创建STM32F103C8T6芯片为例。
  • 🌿关于STM32CubeMX软件安装这里就不做介绍了。
  • 📍STM32CubeMX软件下载: https://www.st.com/zh/development-tools/stm32cubemx.html#get-software
    在这里插入图片描述

📑配置过程

🎉由于录制的gif文件过大没法传上来,只能以图文介绍。

1. 🌿配置RCC时钟

  • ⏰HSE配置为外部晶振
    在这里插入图片描述
  • 📌在时钟树配置页,HCLK直接配置为72MHz
    在这里插入图片描述

2. 🌿GPIO输出引脚配置

📖将PC13配置程输出,模式为推挽,IO口输出速度和初始状态可以根据需求配置。
在这里插入图片描述
在这里插入图片描述

3. 🌿串口1配置

异步串口,波特率可以自定义设定,这里选择默认的115200

在这里插入图片描述

4. 🌿配置SYS调试DEBUG选项

⌛如果你是采用串口烧录方式,此选型必须开启。
在这里插入图片描述

5. 🌿工程保存设置项

在这里插入图片描述
在这里插入图片描述

📚设置好以上内容后,可以点击GENERATE CODE生成工程

在这里插入图片描述

串口重定向,实现printf打印

  • 📋在usart.c文件中添加串口重定向代码:
    在这里插入图片描述
#include "stdio.h"
/*可调用printf*/
int fputc(int ch,FILE *f)
{
    /*&huart1指的是串口1,如果用别的串口就修改数字*/
    HAL_UART_Transmit(&huart1 , (uint8_t *)&ch , 1 , 0xffff);
    return ch;
}
  • ✨在Keil菜单上的魔术棒图标选项-Target中勾选Use MicroLIB库。
    在这里插入图片描述
  • 🔖在调用printf函数的地方包含#include "stdio.h"
    在这里插入图片描述

📝main函数代码

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 */
				HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
			HAL_Delay(1000);
		HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
			HAL_Delay(1000);
		printf("Perseverance51 \n");
  }
  /* USER CODE END 3 */
}

⛳案例源码

链接:https://pan.baidu.com/s/1pJ6nXW1yHItYrHyWCBGmfw 
提取码:j0g9

相关文章:

  • new 和 delete 为什么要匹配使用
  • 00后表示真干不过,部门新来的00后测试员已把我卷崩溃,想离职了...
  • 3年测试在职,月薪还不足20K,惨遭裁员,用亲身经历给大家提个醒..
  • 【从小白到大白03】类和对象-下
  • [DAX] MAX函数 | MAXX函数
  • Pytorch实战 | 第4天:猴痘病识别
  • 【C ++基础】第五篇 类和对象 日期计算器
  • SpringBoot+Vue实现前后端分离大学信息及院校推荐网站
  • 编程初学者如何缓解迷茫和焦虑?墙裂推荐此文,助你赢在起跑线
  • [创业之路-42] 创业是只有一小部分人活下来的游戏,探究创业失败的20个主要原因与提高成功率
  • FPGA实现SPI协议
  • 2022年金砖国家职业技能大赛(决赛)网络空间安全赛项 | 浙江赛区选拔赛 任务书
  • 第8章 聚合函数
  • Turbot4机器人入门教程-应用-读取图片文件并发布图像话题
  • Redis的性能优化一些方案
  • [nginx文档翻译系列] 控制nginx
  • Bytom交易说明(账户管理模式)
  • flask接收请求并推入栈
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Java 内存分配及垃圾回收机制初探
  • JAVA之继承和多态
  • Laravel 中的一个后期静态绑定
  • Laravel核心解读--Facades
  • Spring Boot快速入门(一):Hello Spring Boot
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Vim Clutch | 面向脚踏板编程……
  • vue-cli在webpack的配置文件探究
  • 编写高质量JavaScript代码之并发
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 让你的分享飞起来——极光推出社会化分享组件
  • 怎样选择前端框架
  • 栈实现走出迷宫(C++)
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • # Java NIO(一)FileChannel
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #include
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (2020)Java后端开发----(面试题和笔试题)
  • (Java)【深基9.例1】选举学生会
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (三)Honghu Cloud云架构一定时调度平台
  • (三)终结任务
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)菜鸟学数据库(三)——存储过程
  • .htaccess 强制https 单独排除某个目录
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .Net 高效开发之不可错过的实用工具
  • .net 简单实现MD5
  • .NET连接MongoDB数据库实例教程
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?