STM32串口通信:修改标准库的printf通过USART打印

发布者:BlissfulSunrise最新更新时间:2017-11-07 来源: eefocus关键字:STM32  串口通信  printf  USART打印 手机看文章 扫描二维码
随时随地手机看文章

USART1需要事先进行较为麻烦配置,配置之后发现即使用HAL函数发送语句还要事先以字符串方式定义,实在是麻烦,虽然后面另外自己写了一个简单的库来操作串口,但看到了更简单的方法,修改标准库中printf相关的两个函数,达到通过printf来串口输出的效果。


(在配置完要使用的串口后)

先在main.c中加上

#include "stdio.h"

然后重定向两个函数,这里指定的是USART1接口,PA9和PA10,其他USART或者UART自行修改即可

int fputc(int ch, FILE *f)
{
USART1->DR=(uint8_t)ch;
while((USART1->SR&0X40)==0);
return ch;
}
int GetKey(void)
{
while (!(USART1->SR & 0x20));
return ((int)(USART1->DR & 0x1FF));
}


这样就可以通过功能强大的printf语句来发送了


例1:
printf("Hello everybody");
例2:
int i = 100;
printf("\nTime is: %d",i);

关键字:STM32  串口通信  printf  USART打印 引用地址:STM32串口通信:修改标准库的printf通过USART打印

上一篇:STM32F103 的晶振由8M改为了12M
下一篇:STM32串口通信:串口通信库

推荐阅读最新更新时间:2024-03-16 15:43

存储器系统的非对齐访问
我是之前在试验STM32G031G8U6单片机内部FLASH读操作时候发现的这个问题:STM32F103的flash数据可以从任意地址读,而STM32G031G8U6就不行,读数据地址不对齐的话会死机, 关于什么是非对齐访问,可以参考下图1,来源于CM3权威指南CH5相关内容: 图1 先说结论: 1.Cortex-M0内核不支持****非对齐访问 2.Cortex-M3内核支持非对齐访问 3.intel i5支持非对齐访问 4 .是否支持对存储器的非对齐访问取决于具体使用的内核 本次试验的完成耽误了很久,因为最近一周我得新冠了,体质差得新冠了啥也做不了。以下记录了我的 实验验证过程,过程很长, 没
[单片机]
存储器系统的非对齐访问
STM32 JTAG复用相关方法
STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些端口设置为普通I/O口。具体方法如下: GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); // 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP) GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); // 改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP
[单片机]
STM32使用Flash存储器当作EEPROM来保持数据
嵌入式应用中经常会遇到需要保存一些数据比如选项和设置等等,为了在设备关机或掉电情况下数据不丢失,我们会讲数据保存在EEPROM里面。STM32系列MCU已经被广泛的使用,可是该芯片内没有EEPROM。如果外接一片EEPRM会增加硬件成本。 本文将以STM32F0为例介绍一种使用片内Flash替代EEPROM的方法,仅供大家参考。 STM32F0芯片内部Flash页尺寸为1k。 首先程序需要使用STMicroelectronics提供的标准外设库中的stm32f0xx_flash.h。如下: #include stm32f0xx_flash.h //定义常量 (以STM32F051R8为例) #define FLASH_PAGE_
[单片机]
IAR Systems发布最新开发工具 支持ST STM32系列微控制器
2007年7月31日,瑞典乌普萨拉市,IAR Systems发布最新的开发工具IAR Embedded Workbench 4.42,支持意法半导体(ST)最新的基于ARM Cortex-M3内核的STM32系列微控制器。STM32具有很好的性能,特别适用于有高性能、低功耗、低成本需求的嵌入式应用。IAR Systems公司与意法半导体紧密合作,即时发布相应的开发工具。 支持ARM Cortex-M3控制器的IAR Embedded Workbench是一个完全集成的开发环境,它包含C/C++编译器、项目管理器、编辑器、链接器以及C-SPY调试器。这款开发工具借鉴了 IAR Systems多年对ARM、Thumb 以及 Thumb
[新品]
STM32嵌入式开发,米尔STM32MP135核心板助力充电桩发展
随着电动车的普及和环保意识的增强, 充电桩作为电动车充电设备的重要一环,充电桩行业正迅速发展,消费市场的大量应用也造就市场的需求量不断增长 。因此,产品的功能、可靠性、安全性等要求也变得尤为重要,而采用传统单片机产品并不能满足充电桩的智能控制等需求,本文详细介绍基于米尔STM32MP135核心板的充电桩应用方案。 图1:充电方案图 采用STM32MP135系列微处理器进行电动汽车的智能嵌入式充电桩设计,并通过“指挥”8位和16位微控制器实现复杂功能的智能控制。在智能充电桩的应用里,具备高性价比、低功耗、高可靠性的STM32MP135优势有以下几个方面: 跑Linux系统,实时处理数据和任务 充电桩通常由一个
[单片机]
<font color='red'>STM32</font>嵌入式开发,米尔STM32MP135核心板助力充电桩发展
STM32-电源【ADC供电、VDDA、VSSA、VREF、VBAT等】
STM32供电方案一览 STM32的电源框图如下所示,电源供电共分为4个区域: VDD、VSS供电区域; VDDA、VSSA供电区域; 1.8V供电区域; 后备电源(VBAT)供电区域; STM32F103ZET6(其他的STM32也基本无差)的Datasheet关于供电方案的说明如下: Power supply schemes • VDD = 2.0 to 3.6 V: external power supply for I/Os and the internal regulator(内部调节器或稳压器). Provided externally through VDD pins. • VSSA, VDDA = 2
[单片机]
STM32-电源【ADC供电、VDDA、VSSA、VREF、VBAT等】
STM32引脚JTDO、JNTRST与JTDI作为普通IO口使用配置
使用Jlink向STM32烧录程序时,需要使用6个芯片的引脚(以STM32F103C8T6为例),分别是PB4/JNTRST、PB3/JTDO、PA13/JTMS、PA14/JTCK、PA15/JTDI、NRST。标准的20针JLink接口如下图所示。 当芯片IO口资源比较紧张时,可选择SW模式烧录程序。SWD只需用到PA13/JTMS、PA14/JTCK两根线,NREST可以接可不接,而剩下的PB4/JNTRST、PB3/JTDO和PA15/JTDI就可以当做普通IO使用。但是这三个口当做普通IO使用时需要先配置。配置方法: void GPIOInit(void) { GPIO_InitTypeDef GPIO_Init
[单片机]
STM32串口USART配置、发送与接收
一、配置时钟:GPIO时钟、串口时钟、复用引脚时钟 二、配置GPIO结构体 三、配置串口结构体 //串口初始化示例 void usart_init(void) { //创建结构体 GPIO_InitTypeDef gpioinitStructure; USART_InitTypeDef usartinitStructure; NVIC_InitTypeDef NVICinitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //设置时钟 RCC_APB2PeriphClockCmd(RCC_APB2Pe
[单片机]
<font color='red'>STM32</font>串口<font color='red'>USART</font>配置、发送与接收
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

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

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

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved