找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3379|回复: 3
打印 上一主题 下一主题
收起左侧

stm32f103 printf串口打印程序问题

[复制链接]
跳转到指定楼层
楼主
50黑币


ESP8266与单片机usart1相连,通过手机APP给WiFi发1和0的十六进制
在串口1 中断函数中将其存在全局变量Temp中。



我在网上找了串口打印的重定义,将printf 用usart3打印输出然后通过串口助手在电脑上显示,


但是我printf在main 的while(1)中打印串口助手显示1或0;而在串口一的中断中打印就出现了错误

为什么会发生这样的情况?


代码在附件中,望大神告知

图一为在串口中断中使用printf

图二为在main中使用printf


附件可以实现在main中用usart3正确发送数据到电脑上,有需要的可以免费拿去使用





STM_TEST.7z (172.51 KB, 下载次数: 11)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:267719 发表于 2020-3-31 20:10 | 只看该作者
你的USART3的NVIC没有设置。你本身在USART1的中断里面,只有设置更高优先级的中断才能执行USART3中断。
回复

使用道具 举报

板凳
ID:367369 发表于 2020-4-1 09:54 | 只看该作者
carpcarey 发表于 2020-3-31 20:10
你的USART3的NVIC没有设置。你本身在USART1的中断里面,只有设置更高优先级的中断才能执行USART3中断。

不行啊,设置USART3的优先级高于USART1还是一样的结果连串口打印的数据都一样
回复

使用道具 举报

地板
ID:207209 发表于 2020-4-8 16:11 | 只看该作者
printf 函数的运行时间比较长,在中断中使用会出现bug
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表