首页/新闻资讯/正文详情

stm32, 9-3 : uart chuankou, 移植 printf ( ) 函数

发布时间:2026/9/24 18:25:00 来源:云帆数科 栏目:资讯中心
stm32, 9-3 : uart chuankou, 移植 printf ( ) 函数
66#includestdio.h#includestdarg.h/** * 函 数串口发送一个字节 * 参 数Byte 要发送的一个字节 * 返 回 值无 */voidSerial_SendByte(uint8_tByte){USART_SendData(USART1,Byte);//将字节数据写入数据寄存器写入后USART自动生成时序波形while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)RESET);//等待发送完成/*下次写入数据寄存器会自动清除发送完成标志位故此循环后无需清除标志位*/}/** * 函 数使用printf需要重定向的底层函数 * 参 数保持原始格式即可无需变动 * 返 回 值保持原始格式即可无需变动 */intfputc(intch,FILE*f){Serial_SendByte(ch);//将printf的底层重定向到自己的发送字节函数returnch;}// printf的底层调用了 fputc函数这样 printf的输出就到串口了/** * 函 数自己封装的prinf函数 * 参 数format 格式化字符串 * 参 数... 可变的参数列表 * 返 回 值无 */voidSerial_Printf(char*format,...){charString[100];//定义字符数组va_list arg;//定义可变参数列表数据类型的变量argva_start(arg,format);//从format开始接收参数列表到arg变量vsprintf(String,format,arg);//使用vsprintf打印格式化字符串和参数列表到字符数组中va_end(arg);//结束变量argSerial_SendString(String);//串口发送字符数组字符串}//intmain(void){/*模块初始化*/OLED_Init();//OLED初始化Serial_Init();//串口初始化/*串口基本函数*/Serial_SendByte(0x41);//串口发送一个字节数据0x41uint8_tMyArray[]{0x42,0x43,0x44,0x45};//定义数组Serial_SendArray(MyArray,4);//串口发送一个数组Serial_SendString(\r\nNum1);//串口发送字符串Serial_SendNumber(111,3);//串口发送数字/*下述3种方法可实现printf的效果*//*方法1直接重定向printf但printf函数只有一个此方法不能在多处使用*/printf(\r\nNum2%d,222);//串口发送printf打印的格式化字符串//需要重定向fputc函数并在工程选项里勾选Use MicroLIB/*方法2使用sprintf打印到字符数组再用串口发送字符数组此方法打印到字符数组之后想怎么处理都可以可在多处使用*/charString[100];//定义字符数组sprintf(String,\r\nNum3%d,333);//使用sprintf把格式化字符串打印到字符数组Serial_SendString(String);//串口发送字符数组字符串/*方法3将sprintf函数封装起来实现专用的printf此方法就是把方法2封装起来更加简洁实用可在多处使用*/Serial_Printf(\r\nNum4%d,444);//串口打印字符串使用自己封装的函数实现printf的效果Serial_Printf(\r\n);while(1){}}6768谢谢

相关推荐

Java程序员,这些前端技术真没必要学!大学生必看!
Java程序员,这些前端技术真没必要学!大学生必看!

兄弟萌,姐妹萌,尤其是那些正在Java世界里吭哧吭哧刷怪升级的萌新和大学生们,今天咱们聊点掏心窝子的话。我见过太多这样的同学了:Java基础刚弄明白个大概,对象生命周期还云里雾里,就开始焦虑——“我是不是… · 2026/9/24 18:25:00

Java分块上传信创环境适配实践:从兼容性排查到代码改造
Java分块上传信创环境适配实践:从兼容性排查到代码改造

做老系统信创适配那阵子,最让我头疼的不是复杂的业务逻辑,而是那个看起来不起眼的分块上传功能。说它不起眼,是因为在传统的x86WindowsOracle这套环境下,它老老实实跑了五六年,从来没出过幺蛾子。可一旦把部署环境切到… · 2026/9/24 18:25:00

C#偶像社交后台实战:多语言、TCP监听与图片存储全解析
C#偶像社交后台实战:多语言、TCP监听与图片存储全解析

简介:这是一套面向C#开发者和SNH48粉丝的偶像社交动态监听与图片管理源码,主要解决粉丝手动刷平台、难以及时获取偶像新动态和整理图片的痛点。源码共七十六个文件,包含二十六个C#逻辑文件、八个TypeScript配置文件、四个Vue组件、JSON配置、… · 2026/9/24 18:25:00

F´ (F Prime) 事件日志端口深度解析:Fw::Log 与 Fw::LogText 端口的设计、序列化与使用指南
F´ (F Prime) 事件日志端口深度解析:Fw::Log 与 Fw::LogText 端口的设计、序列化与使用指南

嵌入式系统编程 【免费下载链接】fprime F - A flight software and embedded systems framework 项目地址: https://gitcode.com/gh_mirrors/fp/fprime 点击查看 免费下载 导读 本文聚焦 F(F Prime)飞行软件框架中负责事件日志&#xff08… · 2026/9/24 19:05:27

capa 还是 YARA:先定“查能力“还是“配样本“,再谈怎么选
capa 还是 YARA:先定“查能力“还是“配样本“,再谈怎么选

capa 还是 YARA:先定"查能力"还是"配样本",再谈怎么选 【免费下载链接】capa The FLARE teams open-source tool to identify capabilities in executable files. 项目地址: https://gitcode.com/GitHub_Trending/ca/capa 你… · 2026/9/24 19:05:27

opencodex Codex 账号添加 UX 修复:移除 window.open 弹窗、服务端 openUrl 与登录链接复制兜底
opencodex Codex 账号添加 UX 修复:移除 window.open 弹窗、服务端 openUrl 与登录链接复制兜底

【免费下载链接】opencodex Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code 项目地址: https://gitcode.com/gh_mirrors/ope/opencodex 点击… · 2026/9/24 19:05:21

AI心理健康社交平台技术拆解:情绪识别与风险预警实践
AI心理健康社交平台技术拆解:情绪识别与风险预警实践

1. 项目概述:为什么AI会进入心理健康社交平台今年我开始认真复盘一个做了近一年的项目——AI驱动的心理健康社交支持平台。这名字听着很“概念”,说白了就是:一个用户可以在里面匿名倾诉、互相支持的社区,同时AI在背后做情绪识别、… · 2026/9/24 19:05:21

App Store审核4.3a拒绝原因与应对策略:从被拒到过审的实战指南
App Store审核4.3a拒绝原因与应对策略:从被拒到过审的实战指南

作为一个常年和App Store审核打交道的开发者,看到“4.3a”这个错误码,估计很多人都会心头一紧。我见过不少团队,辛苦开发了几个月的App,提交后不到一分钟就收到被拒通知,原因就是4.3(a)——设计不当的垃圾应用。那种从… · 2026/9/24 19:05:20

深入理解 strictNullChecks:TypeScript Book 中的严格空值检查指南
深入理解 strictNullChecks:TypeScript Book 中的严格空值检查指南

文档教程 【免费下载链接】typescript-book The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source. 项目地址: https://gitcode.com/gh_mirrors/typ/typescript-book 点击查看 免费下载 strictNullChecks … · 2026/9/24 19:05:14

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码