工具与软件:
您好、TI 工程师。
当我使用280039 SCI 模块并使用 sci_ex3_echoback.c 中的初始化过程时、我发现当我运行 SCI_enableFIFO ()函数时、SCIRXBUF 值为0xC01A、SCITXBUF 值为0x8、SCIRxBUF 值为0x8。 我还可以通过两个变量读取这两个寄存器的值、但此时我没有通过 TXD 引脚发送数据、因此我想问初始值是如何产生的?

This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
您好、TI 工程师。
当我使用280039 SCI 模块并使用 sci_ex3_echoback.c 中的初始化过程时、我发现当我运行 SCI_enableFIFO ()函数时、SCIRXBUF 值为0xC01A、SCITXBUF 值为0x8、SCIRxBUF 值为0x8。 我还可以通过两个变量读取这两个寄存器的值、但此时我没有通过 TXD 引脚发送数据、因此我想问初始值是如何产生的?

您好!
首先、请注意、不建议通过表达式窗口访问 SCIRXBUF。 不过、TI 建议使用 SCIRXEMU 寄存器(偏移量0x6)、因为直接访问 SCIRXBUF 寄存器会产生清除 RXRDY 标志的副作用。 同样需要注意的是、RXBUF 值0xC01A 表示 FE/PE 标志已经被设定、而缓冲区中的内容是0x1A。
现在,我注意到您 在运行 SCI_enableModule ()之前看到了此垃圾数据,这令人困惑。 在运行该代码之前、您正在进行什么类型的复位? 一目了然、这是因为在运行代码之前寄存器没有归零。
此致、
Jason Osborn
尊敬的 Jason:
感谢您的意见。
是的,我发现在运行 SCI_enableFIFO (), RXBUF 和 TXBUF 寄存器有一些值,此时 RXENA 没有设置1,从 SCI 模块方框图,这个值是否来自波特率 MSB/LSB 寄存器?至于 SCITXBUF,我看不到图表的源,所以我也很好奇数据来自哪里。 我尝试配置 SCI 模块、然后设置 GPIO、此时会有数据、并且每次数据都是相同的。
尊敬的 Jason:
我不确定我订购了哪些复位操作、我运行了 sci_ex3_echoback 例程、因为我使用的是晶振频率为10M 的板、所以调整了一些宏定义参数。 然后运行此例程,在执行 SCI_enableFIFO()函数之前,SCITXBUF 和 SCIRXBUF 确实是0 ,但在运行 SCI_enableFIFO()之后,图像中的值出现。 每个电路板的值不一定相同、但同一电路板的值相同。 是否可以查看 FIFO 寄存器的值?
Zhen、
这很奇怪。 您能否运行我们示例的未修改版本并在 LaunchPad 上复制问题?
一些注意事项:

此致、
Jason Osborn