关于Ai8H8K64U芯片串口上DMA接收计数值的问题
问题同题目:使用Ai8H8K64U芯片通过DMA接收数据,使用Printf功能打印计数值,结果是有问题的,而同样的方法在STC32G128K上测试就是正常的。不知是什么原因,请大家帮忙解释下。
https://www.stcaimcu.com/forum.php?mod=image&aid=108559&size=300x300&key=4a1e4598f7059bea&nocache=yes&type=fixnone
https://www.stcaimcu.com/forum.php?mod=image&aid=108555&size=300x300&key=b669d6ebda2993ca&nocache=yes&type=fixnone
https://www.stcaimcu.com/forum.php?mod=image&aid=108556&size=300x300&key=eebb41aef87ffb62&nocache=yes&type=fixnone
非常简单的一段程序,使用AiCube知生成的框架。测试结果是:
输入一个a.接收中断发生了一次,但是打印出接收的数值不对,发送两次问题依旧。
要说明的还有一个问题是,这个版子按住RST键,接收区会连续有接收信号,但无数据,是板子的问题么?有碰到同样问题的么?
还有个问题是:
printf("RxNum:%d;H:%d。\n",RxNum,DMA_UR1R_DONE);
与
printf("H:%d;RxNum:%d。\n",DMA_UR1R_DONE,RxNum);
本来以为输出的数值不会因为前后顺序的变化输出的值不会变,但结果确是不同。
可以看到变换了前后顺序,输出的值也出错了,不知是什么原因? 问题找到了,原来是STC8H8K64U与STC32G128K的DMA_UR1R_DONE寄存器位数是不同的,32位的是16位长度,所以可以直接输出,但是STC8H8K64U是8位的,直接输出就是会有问题。但是按下RST键会有连续的串口输入信号输入或就不知为什么了,不知道大家的板子是不是也是这个样子的。 数据类型不一致,使用%bu或%02X试一下
页:
[1]