芯片手册里面一句英文,不知道理解的对不对。
这是MC68HC11很老的芯片手册里面的一句,串口发送完成中断
Clear the TC flag by reading SCSR with TC set and then writing to SCDR
TC=1的时候,读SCSR 会清除TC位。然后写不写数据给SCDR,TC位都是清0了。不知道这位理解对不对 我的理解是读并且写。 同意楼上,读状态寄存器并写数据寄存器才会清零。如果你数据真的发送完成了,在TC中断里面把TC中断关了就行。。 我也这么理解的 指的是读到tc为1再写。英语语法本身就容易产生断句问题。 本帖最后由 huangqi412 于 2019-1-27 18:25 编辑
读是必须不读不知道发生了什么中断填数据清除中断 读操作跟清除估计无关楼主可以试试低波特率下发一个字节延时一秒再发一个字节立马读中断寄存器 此时第二个字节没发完应该tc为0第一个字节的tc即使没读中断寄存器在填第二个字节时就变零了 看了下,TDRE也是这句,看样子是要2步:
Clear the TDRE flag by reading SCSR with TDRE set and then writing to SCDR.
要读的原因是:不置位不能写SCDR 是读完再写才能清除,Clear the TC flag by “reading SCSR with TC set and then writing to SCDR”,注意是writing,writing只能接前面的by 我理解的是,当TC set时,读scsr,然后写SCDR。这样清除TC标志!拿不准只能试一试了 TC应该是SCSR中的一个位,应该是读SCSR,直到TC置位,然后写SCDR
页:
[1]