找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2480|回复: 3
收起左侧

stm32f103 printf串口打印程序问题

[复制链接]
ID:367369 发表于 2020-3-31 14:38 | 显示全部楼层 |阅读模式
50黑币


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



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


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

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


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

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

图二为在main中使用printf


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

2.png

1.png

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

回复

使用道具 举报

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 单片机教程网

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