一知半解学CubeMX——UART:Printf实现

发布者:DazzlingSmile最新更新时间:2020-05-20 来源: eefocus关键字:CubeMX  UART  Printf 手机看文章 扫描二维码
随时随地手机看文章

一知半解学习环境:

    1、CubeMX 4.23.0

    2、uVision 5.14.2

    3、MCU 启明 STM32F407 开发板(高配版) V3.1


一知半解学习目标:

    1、掌握CubeMX下RCC以及SYS的相关配置;

    2、掌握CubeMX下串口配置;

    3、掌握Printf的实现套路;


一知半解实现过程:

    1、配置系统调试接口及时基时钟源;

    2、配置外部高速时钟源;

    3、根据原理图配置对应串口(USART1);

    4、配置时钟树;

    5、配置串口参数,保持默认参数即可;

    6、生成工程,并添加程序;

首先,打开工程,在usart.c文件的最后添加如下程序;


/* USER CODE BEGIN 1 */

#ifdef __GNUC__

  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf

     set to 'Yes') calls __io_putchar() */

  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

#else

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

#endif /* __GNUC__ */

PUTCHAR_PROTOTYPE

{

  /* Place your implementation of fputc here */

  /* 使用的串口可根据实际配置修改 */

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

  return ch;

}

/* USER CODE END 1 */


其次,在main.c循环中添加打印信息;


/* USER CODE BEGIN WHILE */

  while (1)

  {

  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */

        HAL_Delay(1000);

        printf("杭州义益钛迪信息技术有限公司嵌入式部门n");

  }

  /* USER CODE END 3 */


     7、串口调试助手打印验证;


一知半解套路回顾:

    1、掌握CubeMX配置的常规套路,如SYS、RCC以及时钟树的配置等;

    2、掌握CubeMX串口的配置;

    3、学会printf实现需要添加文件的固定套路(以后遇到只需要复制就行);

关键字:CubeMX  UART  Printf 引用地址:一知半解学CubeMX——UART:Printf实现

上一篇:STM32Cubemx出现工程突然自动退出的问题
下一篇:IAR平台下使用STM32的DSP配置方法

推荐阅读最新更新时间:2024-11-10 21:43

44B0X Uart_Printf()
最近在学习44B0X,在看其串口驱动时发现有个Uart_Printf()函数,深入看之,发现不解,惑也!于是查其资料,转发于下,希对同仁有用。 原形: void Uart_Printf(char *fmt,...) //...表示可变参数(多个可变参数组成一 个列表,后面有专门的指针指向他),不限定个数和类型, { va_list ap;//初始化指向可变参数列表的指针 char string ; va_start(ap,fmt);//将第一个可变参数的地址付给ap,即ap指向可变参数列 表的开始 vsprintf(string,fmt,ap);//将参数fmt、ap指向的可变参数一起转换成格式 化字符串,放string数组中,
[单片机]
使用STM32CubeMX生成初始化代码
我使用STM32CubeMX生成初始化代码,使用LL库,这里只介绍跟i2c相关的部分,其他必要的初始化需要自己完成。芯片使用stm32f042。本文的代码不能到手即用,只提供思路。 1、初始化 初始化部分包括GPIO、DMA、I2C等。 1、GPIO 这部分自动生成就OK,一般不需要作修改; LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA); /**I2C1 GPIO Configuration PA9 ------ I2C1_SCL PA10 ------ I2C
[单片机]
STM32中printf与scanf的重定向问题
关于STM32中 printf 与 scanf 的重定向问题在此我仅对不使用 USE MircoLIB 的情况做整理(针对Keil RVMDK开发环境)。 ① :首先需要在 usart.h 中包含 “stdio.h” 头文件 ② :在 usart.c 中,加入如下代码块,以此避免使用半主机模式,并重定向 printf 和scanf 函数; #if 1 #pragma import (__use_no_semihosting_swi) /*标准库需要的支持函数,use_no_semihosting_swi以避免使用半主机模式*/ struct __FILE { int handle; };
[单片机]
C8051F340串口通信程序(UART0)
UART0 是一个异步、全双工串口,它提供标准 8051 串行口的方式 1 和方式 3。UART0 具有增强的波特率发生器电路,有多个时钟源可用于产生标准波特率(详见 18.1 增强波特 率发生器 )。接收数据缓冲机制允许 UART0 在软件尚未读取前一个数据字节的情况下开始接 收第二个输入数据字节。 UART0 有两个相关的特殊功能寄存器:串行控制寄存器(SCON0)和串行数据缓冲器 (SBUF0)。用同一个 SBUF0 地址可以访问发送寄存器和接收寄存器。写 SBUF0时自动访问 发送寄存器;读 SBUF0时自动访问接收寄存器,不可能从发送数据寄存器中读数据。 如果 UART0 中断被允许,则每次发送完成(SCON0
[单片机]
C8051F340串口通信程序(<font color='red'>UART</font>0)
STM32CubeMX芯片包(固件库)使用注意
1. 解压本地固件库包后需要将文件夹放到指定路径,该指定路径为cubemx软件中的help - updater settings - updater settings - repository folder中的路径,本人的路径为C:/Users/WR/STM32Cube/Repository/。之前没有放到指定路径,因此Generate Code时会提示错误信息。 2. 将固件库放入指定路径后,需要在CubeMX软件中选择它,点击工具栏Project - Settings - Project - Firmware Package Name and Version中选择刚刚放置到指定位置的固件库,本人的固件库为STM32Cube
[单片机]
编程点滴:AVR的UART数据收发测试程序
本程序实现UART中断方式发送和接收数据功能,将接收到的数据立即发出,形成回环。 由测试程序 main.c ,相关头文件 uart_test.h ,UART数据处理程序 uart_test.c 组成。 main.c /* ************************************************ * File name: main.c * Function: AVR的UART数据收发测试程序 * Description: 实现将RXD端口收到的数据转发至TXD端口 * 收发工作由UART中断自动完成 * Author & Date: Joshua Chan, 2012/03/28 * *******
[单片机]
STM8学习笔记---串口printf函数的实现
在使用单片机的时候,串口是要经常使用的功能,特别是在调试代码的过程中,经常需要使用串口打印出某些变量值,来判断程序执行流程是否正常。但是单片机默认情况下没有printf函数,如果需要使用printf函数的功能,就需要自己在串口代码中配置。下面总结一下如何在STM8单片机中使用printf函数功能。 首先按照常规方法先初始化串口 void Uart1_IO_Init( void ) { PD_DDR |= ( 1 5 ); //输出模式 TXD PD_CR1 |= ( 1 5 ); //推挽输出 PD_DDR &= ~( 1 6 ); //输入
[单片机]
STM8学习笔记---串口<font color='red'>printf</font>函数的实现
STM32中如何使用printf()函数?
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。 下面就说一下使用printf需要做哪些配置。 有两种配置方法: 一、对工程属性进行配置,详细步骤如下 1、首先要在你的main 文件中 包含“stdio.h” (标准输入输出头文件)。 2、在main文件中重定义函数 如下: // 发送数据 int fputc(int ch, FILE *f) { USART_SendData(USA
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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