运行环境
Windows10
STM32CubeMX___Version 5.0.0
Keil5(MDK5)___Version 5.15
简介
本例程主要讲解如何通过串口发送数据和重定向printf
STM32CubeMx基本配置
基础配置过程请参考 STM32CubeMx(Keil5)开发之路—1配置第一个项目
STM32CubeMx USART1配置
1——点击USART1进行设置
2——模式选择Asynchronous异步传输
3——可以看到右边自动出现了Tx和Rx
4——可以自行设置波特率,停止位,校验位等参数
代码修改
1——选择main.c文件
2——在USER CODE中添加如下代码,重定向printf
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch,1, 0xFFFF);
return ch;
}
在主循环中添加如下代码
int num=99;
char tx_buf[]={"HelloWorld!"};
printf("nnum = %dn",num);
HAL_Delay(1000);
HAL_UART_Transmit(&huart1, (unsigned char*)tx_buf,11,10);
HAL_Delay(1000);
烧录代码后打开出口调试助手,正确的话会看到如下输出
小结
串口常用场合
打印调试
进行串口通信
对某些芯片的读取
本节主要讲串口发送和printf的重定向,没有对串口接收进行讲解,后续可能会在DMA章节一起讲解,敬请期待。
关键字:STM32CubeMx Keil5 SART printf重定向
引用地址:
STM32CubeMx(Keil5)开发之路——3发送USART数据和printf重定向
推荐阅读最新更新时间:2024-11-11 14:59
STM32 printf重定向
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。 下面就说一下使用printf需要做哪些配置。 有两种配置方法: 一、对工程属性进行配置,详细步骤如下 1、首先要在你的main 文件中 包含“stdio.h” (标准输入输出头文件)。 2、在main文件中重定义 fputc 函数 如下: // 发送数据 int fputc(int ch, FILE *f) { USART_SendData(
[单片机]
STM32CubeMX开发工具的安装
Ⅰ、写在前面 相信很多人都知道STM32CubeMX这个工具,也是近年来开发STM32比较流行的一个工具。这个工具从两年前第一版到现在已经有多个版本了,功能也从简单越来越强大了。 STM32CubeMX是一个配置STM32代码的工具,它把很多东西封装的比较好,硬件抽象层、中间层、示例代码等。 现在ST公司主要升级和维护的库主要就是“Cube库”和“标准外设库”,使用这两种库开发各有各的好处,这里详细描述。 如果你是一名刚学STM32的初学者,想要把硬件底层搞的很明白,不建议使用STM32CubeMX这个工具,建议使用之前经典的标准外设库来开发(先学习标准外设库,但有毕竟要抽时间了解STM32CubeMX)。标准外设库可以很简单直接
[单片机]
用 STM32 通用定时器做微秒延时函数(STM32CubeMX版本)
环境: 开发板:STM32F4探索者(正点原子) 1.配置定时器时钟 选择时钟源 这里选择的是内部时钟,来自 RCC 的TIMxCLK,在通用定时器框图中我们可以看到如下: 而我们可以在 STM32F4xx中文参考手册中找到,TIM2 在外设总线1(APB1上),因此其时钟为 84MHz,如下图所示: 2.计数器时钟频率及计数模式 除了配置定时器的时钟,还需要配置计数器时钟频率,我们要实现微秒延时,因此计数器时钟频率应该是1MHz, 而要实现还需要以下3个参数: 预分频系数 根据STM32F4xx中文参考手册中的时钟频率计算,如下图所示: 其中fCK_PSC就是通用定时器框图中的CK_PSC, 即值为8
[单片机]
使用STM32硬件SPI+STM32cubeMX+HAL库测试DW1000通信
本篇详细的记录了如何使用STM32CubeMX配置STM32F103C8T6的硬件SPI外设与DW1000通信,为移植DW1000官方驱动打下基础。 1. 准备工作 硬件准备 开发板 首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi): DW1000模块 这里我连接到DW1000官方评估板上,直接与DW1000芯片通信: 连接方法 首先查看DW1000官方评估板预留的外接控制器SPI接口(J6接口)的引脚说明: 外部供电接口(J7)的引脚说明: ① 首先将DW1000官方评估板上的S1、S2拨码开关全部拨为OFF,这样配置之后才可以外接控制器。 ② 按照下图选择端子,配置为外部供电
[单片机]
stm32cubemx+freertos+fatfs+sd调试心得
stm32cubemx是当下比较流行的开发工具,可以大大提升我们的移植效率,从而提升开发的效率,但是在某些方面还是有些小坑需要我们注意。以下是用Cube,来进行sd卡读写实验的一些心得。 在这里cube的画面配置环节就不描述了,直接描述所碰问题:文件系统无法挂载或文件无法读写,而且调式的时候光标移到读取时会跑飞等一些列问题。其实针对于这一问题主要是处理SD的信息接受与发送的中断调用有问题,我们可以进入SD的中断函数中进行分析,该函数在stm32f4xx_it.c文件中,如下图所示: 然后我们再进入HAL_SD_IRQHandler(&hsd)函数中,会发现当SD卡发送和接收信息调用的函数如下图所示: 根据这一
[单片机]
【STM32CubeMX】HAL库中断方式UART串口通信
HAL库下,利用STM32CubeMX生成源代码,确实比较简单,比用标准库简单很多。 现在总结自己学习的过程: 硬件平台:正点原子探索者(STM32F407ZET6) 1、配置STM32CubeMX (1)打开STM32CubeMX,选择相应的芯片型号,并配置调试信息为:Serial Wire (2)配置RCC主频,选择外部高速晶振(HSE):Crystal/Ceramic Resonator(译文:水晶/陶瓷谐振器) 然后开始配置时钟树: 外部晶振为8MHz,配置PLL使主频为168MHz,如下图: (3)配置USART1:选择异步通信模式 (4)配置串口:115200
[单片机]
STM32入门系列-开发工具keil5安装
主要介绍如下三部分内容: keil5软件获取 keil5安装 安装STM32芯片包 软件获取 可以通过搜索引擎搜索关键字“KEIL5下载”,找到其官方网站http://www.keil.com。我们这里使用MDK5.14版本,如果后面出了更高的版本选择性升级即可,不过也没有必要什么都追求最新的,这一个软件用着习惯就行。 登录armkeil官方网站,网站首页有软件下载连接,在这里我们选择MDK-Arm。会让你先注册,注册完成之后就可以开始下载了。 软件安装 安装此软件时一定要注意以下几点: 安装路径不能带中文,必须是英文路径。 安装目录不能跟51的KEIL或者KEIL4冲突,三者目录必须分开。 KE
[单片机]
STM32CubeMX FreeRTOS二值信号量实验
系统:linux mint xfce 64bit 软件: 1、SW4STM32 2、STM32CubeMX 3、开发板:STM32F407VET6核心 二值信号量作用: (1)任务间同步 (2)中断与任务间同步 本次实验二值信号量的作用是中断与任务间同步,使用STM32CubeMX配置的freertos其API进行了封装,是CMSIS格式的API,关于二值信号量的操作函数如下图所示 实验效果:串口发送5个字节长度的字符串后,触发接收中断,同时发生二值信号量osSemaphoreRelease(myBinarySem01Handle) ,然后在任务函数1里面打印出相关信息已经字符串。 (1)配置RCC(外部晶振8M),SYS(s
[单片机]