打印

【求问】为什么串口发送函数必须在主函数while中才有用

[复制链接]
721|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
过期账户|  楼主 | 2020-4-20 13:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我同一个函数,里面是要用F103的串口发送数据,但是在主函数中调用的话不能发,必须在主函数的while(1)里面才行,但是我只需要发送一遍,while中就一直发,萌新求解答

使用特权

评论回复

相关帖子

沙发
lixmlxm| | 2020-4-21 10:24 | 只看该作者
这要看看你的函数是如何写的了,正常的话只要激发都可以发送。估计你主函数里面有个什么开关导致在其他的不发!我写的不管哪里都可以激发发送的。你可以在while(1)里面只放这个函数试看看。

使用特权

评论回复
板凳
tianxj01| | 2020-4-21 11:21 | 只看该作者
几乎所有的串口发送数据,都是按需发送,也就是主机需要发送数据时候,才发送。
作为主函数,非while(1)段,都是典型的一次性过程,一般,我们会在机器硬件初始化、数据准备等过程,才放在主循环外面,接着,单片机就进入while(1)循环段,这里面才是我们需要单片机长期工作的代码。
有些典型的,实时过程全部采用中断完成,则单片机完成初始化后,直接进入一个空的while也会有看见。
用主函数按需发送,同时避免主循环无限循环发送,我们需要一个发送标志,主循环只修改发送需要标志和检查该标志,等有发送标志时候,则直接调用串口发送函数发送数据,而串口发送函数会返回一个发送成功或者错误标志,检查该标志我们就可以清除发送标志或者错误从发等等动作。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

395

主题

395

帖子

0

粉丝