OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 194|回复: 4

[XILINX] zynq串口初始化后打印信息的问题

[复制链接]

7

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2022-6-19
在线时间
33 小时
发表于 2024-10-27 21:21:08 | 显示全部楼层 |阅读模式
发现一个奇怪的现象,如果在主函数实现串口初始化之前直接添加一个printf打印,则无法打印出正确的信息,只有放在初始化之后才能实现打印,而在helloword这种不需要初始化串口的程序中就可以直接打印。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

60

帖子

0

精华

高级会员

Rank: 4

积分
688
金钱
688
注册时间
2021-3-25
在线时间
137 小时
发表于 2024-10-29 09:37:25 | 显示全部楼层
本帖最后由 caojunye 于 2024-10-29 09:39 编辑

当使用一些打印函数的时候,如: printf(),实际上调用的还是 UART 相关的 API 函数,如果在初始化的过程中,使用打印函数,或者在打印的过程中对串口进行初始化,都会导致串口助手打印功能不正常,, 所以 printf 函数应该放在串口初始化函数之后的位置。至于hello world实验那些没有包含对串口控制器初始化的实验,串口控制器会保持默认的状态,所以依然可以正常打印工作
回复 支持 反对

使用道具 举报

7

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2022-6-19
在线时间
33 小时
 楼主| 发表于 2024-10-31 18:24:35 | 显示全部楼层
caojunye 发表于 2024-10-29 09:37
当使用一些打印函数的时候,如: printf(),实际上调用的还是 UART 相关的 API 函数,如果在初始化的过程中 ...

是不是相当于串口还没有把printf的内容发送完,CPU就直行到下一条串口初始化程序了?
回复 支持 反对

使用道具 举报

3

主题

2012

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5615
金钱
5615
注册时间
2018-10-21
在线时间
1590 小时
发表于 2024-10-31 19:31:00 | 显示全部楼层
lzqstm 发表于 2024-10-31 18:24
是不是相当于串口还没有把printf的内容发送完,CPU就直行到下一条串口初始化程序了?

你可以在串口初始化程序之前,加个sleep延时语句测试一下就知道了
回复 支持 反对

使用道具 举报

7

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2022-6-19
在线时间
33 小时
 楼主| 发表于 2024-10-31 19:47:13 | 显示全部楼层
QinQZ 发表于 2024-10-31 19:31
你可以在串口初始化程序之前,加个sleep延时语句测试一下就知道了

加延时后正常了,感谢指点
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 05:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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