STM32CUBEMX开发GD32F303(7)----配置printf

发布者:创客1992最新更新时间:2023-10-09 来源: elecfans关键字:STM32CUBEMX  GD32F303 手机看文章 扫描二维码
随时随地手机看文章

概述

本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过GD32303C_START开发板内进行验证。

样品申请

https://www.wjx.top/vm/mB2IKus.aspx

硬件准备

这里准备了GD32303C_START开发板进行验证。

在这里插入图片描述

printf()函数

printf()函数是式样化输出函数, 一般用于向准则输出设备按规定式样输出消息。正在编写步骤时经常会用到此函数。printf()函数的挪用式样为: printf(“<式样化字符串>”,<参数表>); 其中式样化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出;另一部分是式样化规定字符, 以"%“开端, 后跟一个或几个规定字符, 用来确定输出内容式样。 参量表是需求输出的一系列参数, 其个数务必与式样化字符串所阐明的输出参数个数一样多, 各参数之间用英文逗号”,"分开, 且顺序逐一对应, 不然将会出现意想不到的错误。 注意:函数printf从右到左压栈,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所以我们看见的结果是,从右边开始处理的。

STM32CUBEMX配置

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

keil配置

microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,如果要使用printf(),必须开启。

在这里插入图片描述

代码

在main.c中,添加头文件,若不添加会出现 identifier "FILE" is undefined报错。


/* USER CODE BEGIN Includes */

#include "stdio.h"

/* USER CODE END Includes */

函数声明和串口重定向:


/* USER CODE BEGIN PFP */

void uart1_data(void);                    //接收函数

#ifdef __GNUC__                                    //串口重定向

#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

#else

#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)

#endif 

PUTCHAR_PROTOTYPE

{

    HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);

    return ch;

}

/* USER CODE END PFP */

printf()打印。


/* USER CODE BEGIN WHILE */

  while (1)

  {

    /* USER CODE END WHILE */


    /* USER CODE BEGIN 3 */    

    printf("串口打印例程\r\n");

    HAL_Delay(1000);            

  }

  /* USER CODE END 3 */

结果演示

在这里插入图片描述


关键字:STM32CUBEMX  GD32F303 引用地址:STM32CUBEMX开发GD32F303(7)----配置printf

上一篇:应用笔记 | STM32L4R9 的QuadSPI Flash 通讯速率不理想
下一篇:LinkedInSTM32F4时钟系统初始化的程序代码分享

推荐阅读最新更新时间:2024-11-03 05:25

STM32CubeMX系列 | 待机唤醒
1. 低功耗模式简介 系统或电源复位后,微处理器处于运行状态,运行状态下HCLK为CPU提供时钟,内核执行程序代码。当CPU不需继续运行时(例如等待某个外部事件),可以利用多个低功耗模式来节省功耗。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。STM32提供了3种低功耗模式,以达到不同层次的降低功耗的目的: - 睡眠模式(CM3内核停止工作,外设仍在运行)(功耗最高) - 停止模式(所有时钟都停止)(典型电流消耗20uA左右) - 待机模式(1.8V内核电源关闭)(最低电流消耗2uA左右) 在运行模式下,也可以通过如下方式降低功耗: - 降低系统时钟 - 关闭APB和AHB总线上未被使用的
[单片机]
STM32CubeMX生成F1的工程中提示找不到 __HAL_TIM_SetCompare 问题
1. 问题描述 在用STM32CubeMX生成 STM32F103C8T6 的MDK工程后,在main.c中更改定时器占空比计数值的时候,报错: 总之就是HAL库内部API函数__HAL_TIM_SetCompare找不到。 2. 解决方案 经过搜索,该函数在stm32_hal_legacy.h文件中: 所以出错原因肯定是:调用此函数的时候没有包含进来这个头文件,再次通过文件名查找: 果然,包含此头文件需要定义宏USE_HAL_LEGACY。 在它前面define一下: 重新编译,问题解决成功! 这样添加之后,重新使用STM32CubeMX生成工程后,代码会被自动覆盖,需要重新添加!
[单片机]
<font color='red'>STM32CubeMX</font>生成F1的工程中提示找不到 __HAL_TIM_SetCompare 问题
使用Stm32Cubemx配置定时器正交编码模式详解
这篇文章也是本人做完一个项目后抱着想记录点东西巩固下知识同时又想给后来的技术同伴一点参考的想法写下来的,和本人之前有关中颖芯片的博文意图是一致的。看完本篇文章可以了解stm32芯片如何配置定时器正交编码模式的同时对cubemx也会有一定的了解。这款工具很好用,很方便,希望所有用st芯片的伙伴们都能掌握它的用法,使用一种工具很快能上手,主要是大家要了解标准库和HAL库之间的一些微小机制区别就很容易了,这篇文章不打算讲这些,要不跑题了,有空的话专门写一篇文章,不过大家也可以在网上找到很多资料,废话不多说了下一段进入主题。 这里假设大家都下了cubemx软件,对软件具有一定的熟悉度。用stm32f030系列来为例吧。
[单片机]
使用<font color='red'>Stm32Cubemx</font><font color='red'>配置</font>定时器正交编码模式详解
STM32CubeMX系列教程 5.0版本环境开发——2.Uart串行通信功能
1.搭建一个基本工程: 具体请参考我的上一篇内容搭建:https://www.cnblogs.com/Engineer-Lai/p/10072673.html 2.Uart协议简要: 分为通俗描述和概念性描述 通俗描述: 1. 对于单片机入门的人来说,首先我们要明白 我们唯一可控的对象是IO口,IO有两种状态 0和1. 有两种操作读和写(请务必确认自己明白并可以操控,我们便可继续) 2.在确认第一点后,硬件协议存在的意义是什么:A对象 把N个数据遵照特定的规则传给 B对象.(这里数据的单位是字节,一个字节由8个位组成) 3.接下来就是如何传数据的问题了,我们只有0和1可以表示。所以我们必须制定一套双方都遵循的可行游戏规则。
[单片机]
<font color='red'>STM32CubeMX</font>系列教程 5.0版本环境开发——2.Uart串行通信功能
STM32CubeMX:GPIO操作
芯片:STM32F103C8T6 应用管脚: 输出:PA0、PA1 配置界面 /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_GPIO_WritePin(GPIOA,LED0_Pin,(GPIO_PinState)!HAL_GPIO_ReadPin(GPIOA,LED0_Pin)); HAL_GPIO_WritePin(GPIOA,LED1_Pin,GPIO_PIN_SET); HAL_Delay(500); HAL_GPIO_WritePin(GPIO
[单片机]
<font color='red'>STM32CubeMX</font>:GPIO操作
stm32cubemx I2C读取AT24C16
本文对如何使用stm32cube生成I2C工程不作说明,仅对在对AT24Cxx系列的使用时作出易忽略的说明; 1、at24cxx页面结构: 从该图可以看出16K(bit)共有128个页,每页由16byte构成。16k = 128 * 16 * 8; 特别注意:除at24c01和at24c02的页由8个byte构成,其它的都是由16byte构成。(这关系到对芯片的连续读写) 2.at24cxx的设备地址: A:作为设备地址的一部分;P:作为页地址的一部分; 对于大多数人来说都知道I2c设备具有一个设备地址,并且在一条总线上是唯一。若要在一个I2C总线上挂多个AT24CXX系列芯片,则需要A2,A1,A0作为设备地址的一部分
[单片机]
STM32CubeMX开发环境的搭建
1、安装包下载 由于STM32CubeMX软件是基于JAVA环境运行的,所以需要安装JRE才能使用,JRE、STM32CubeMX工具和库可以到官网下载。TM32CubeMX要求JRE最低版本是1.7.0_45,如果你电脑已安装JRE版本大于1.7.0_45,则可以不用再下载安装。 1.1 Oracle官方下载JRE http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html 接受许可,根据自己电脑系统选择下载,如下图: 1.2 ST官方下载STM32CubeMX工具、库 官网可以下载最新版本的软件,STM32C
[单片机]
<font color='red'>STM32CubeMX</font>开发环境的搭建
STM32CubeMX系列教程04_STM32CubeMX各窗口界面描述
一、写在前面 上一篇文章让你入门STM32CubeMX,你可能还是会觉得心里摸不到底。本文就从另外一个角度带你了解STM32CubeMX。 本文讲述STM32CubeMX各主要界面内容,让你对STM32CubeMX这个工具有一个比较直观的认识。 二、主界面 打开STM32CubeMX,呈现的界面大致如下图,界面比较简洁。我把它划分为六大板块。 1.菜单 STM32CubexMX V4版本(前面老版本)有很多功能做在菜单里面,但V5版本优化(删减)菜单,把一些常用功能做在相应界面里面了。 菜单内容后面会单独详细讲述。 2.社交链接 facebook(脸书)、youtube、twitter(推特)以及ST社区、官
[单片机]
<font color='red'>STM32CubeMX</font>系列教程04_STM32CubeMX各窗口界面描述
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved