[技术问答] HC32L190求助,串口没有发送状态标志,无法找到休眠时机。 |
评论
[url=home.php?mod=space&uid=3218946]@lee8871[/url] :那应该是你代码没有写好,L系列这么大的出货量,如果有你这种情况,那这个芯片还怎么用呀.反正我是没有碰到你这个情况,另外采用中断发送是要先往Txbuff里装载一个字节的数据,等TC置位后在中断里继续往Txbuff里装载数据,直到最后一个数据装载完毕,下一次TC标志位置位。此次数据发送完毕。
[url=home.php?mod=space&uid=3124216]@wubangmi[/url] :您说的方法我前段时间试过,大概上个月。是不行的。常规的方法就是需要等两个TC中断,大部分情况能等到两个。现在程序复杂了些,偶尔中断处理的晚了,就会出错,等不到第二个TC中断。
如果只等一个TC置位了就停止,最后一个数据会发不出。
[url=home.php?mod=space&uid=3218946]@lee8871[/url] :你还是没有理解我说的意思,用中断方式发送的话,你只需要判断TC标志位,TC置位了,他就表明已经发送完成了.然后你就可以进你的deepsleep了。
您应该是没懂我的意思,我看到您的叙述和我的想法是一致的。
这么说吧,如果利用TXE(TX buffer空)中断填入数据(或者DMA),那么在什么时候就可以让芯片休眠了?因为芯片休眠会关闭主时钟,休眠的时候,如果UART数据仍在发送,就会因为丢失时钟而立即发生错误。
我现在的方案是要在中断中用while循环等待标志位的,不知道有没有更好的方案。
|
|