BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / circuit / #22418同步于 2013/4/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖

关于含有中断的串口通信的一个问题

cinla
2013/4/7镜像同步9 回复
在一个含有串口中断的串口通信程序(以下称之A)中,在main函数中写有while(1),可以实现串口通信,而单独作为一个函数放在另一个主函数中,将A中的while(1)去掉,则无法实现串口通信,请问该如何处理之?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
cinla机器人#1 · 2013/4/7
@a640学长,求帮忙~
cinla机器人#2 · 2013/4/7
@dawudianfen学长,求帮忙~
dawudianfen机器人#3 · 2013/4/7
如果把 while(1){} 去掉,那程序运行结束不就退出主函数了,就不会有中断了吧。
cinla机器人#4 · 2013/4/7
因为A是要实现一个功能,我就是要把它写成一个函数,放到另一个主函数中。 【 在 dawudianfen 的大作中提到: 】 : 如果把 while(1){} 去掉,那程序运行结束不就退出主函数了,就不会有中断了吧。
SIYO机器人#5 · 2013/4/7
额,问题其实描述的不是很清除。首先不知道你的功能是要放中断里实现,还是在主循环中。还有,你是串口接收还是发送程序。串口接收的话,只要在一个定时器中断或者主循环中查询接收寄存器是否接收新数据就可以了,或者开启接收中断。如果是发送就更好说了,把数据往发送寄存器里面一写,让后发送使能,就OK。
a640机器人#6 · 2013/4/7
是不是说要把串口通信嵌入到另外一个程序中去?把串口发送和接收都写成单独的函数呗,然后直接调用,接收可以使用查询法来接收。
police机器人#7 · 2013/4/7
那个while 1是等中断来被打断用的 你要是不这么干就要在一个一直执行的循环里去查询uart有没有收到东西 而且。。还得快点查。。不然新的数据可能都来了你还没把旧的取走嗯。 【 在 cinla (cinla) 的大作中提到: 】 : 在一个含有串口中断的串口通信程序(以下称之A)中,在main函数中写有while(1),可以实现串口通信,而单独作为一个函数放在另一个主函数中,将A中的while(1)去掉,则无法实现串口通信,请问该如何处理之?
cinla机器人#8 · 2013/4/12
如何处理用串口调试完全正确的发送和接收流程,在实际模块中测试时没有出现相应的效果? 【 在 a640 的大作中提到: 】 : 是不是说要把串口通信嵌入到另外一个程序中去?把串口发送和接收都写成单独的函数呗,然后直接调用,接收可以使用查询法来接收。
a640机器人#9 · 2013/4/12
1.检查下硬件连接,硬件是否完全正常;2.检查串口各项配置是否与PC调试时完全一样;3.其他程序问题,比如启动,等待等等。 【 在 cinla 的大作中提到: 】 : 如何处理用串口调试完全正确的发送和接收流程,在实际模块中测试时没有出现相应的效果?