找回密码
 立即注册
查看: 98|回复: 3

关于Ai8H8K64U芯片串口上DMA接收计数值的问题

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-22 08:27:07

6

主题

26

回帖

132

积分

注册会员

积分
132
发表于 2025-7-15 09:18:56 | 显示全部楼层 |阅读模式
问题同题目:

使用Ai8H8K64U芯片通过DMA接收数据,使用Printf功能打印计数值,结果是有问题的,而同样的方法在STC32G128K上测试就是正常的。不知是什么原因,请大家帮忙解释下。


截图202507150909477647.jpg


截图202507150906351763.jpg
非常简单的一段程序,使用AiCube知生成的框架。测试结果是:

截图202507150915091854.jpg
输入一个a.接收中断发生了一次,但是打印出接收的数值不对,发送两次问题依旧。
截图202507150916554329.jpg
要说明的还有一个问题是,这个版子按住RST键,接收区会连续有接收信号,但无数据,是板子的问题么?有碰到同样问题的么?
截图202507150903518935.jpg
截图202507150904349106.jpg
截图202507150905208159.jpg
截图202507150913319976.jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-22 08:27:07

6

主题

26

回帖

132

积分

注册会员

积分
132
发表于 2025-7-15 09:25:10 | 显示全部楼层
还有个问题是:
printf("RxNum:%d;H:%d。\n",RxNum,DMA_UR1R_DONE);

printf("H:%d;RxNum:%d。\n",DMA_UR1R_DONE,RxNum);
本来以为输出的数值不会因为前后顺序的变化输出的值不会变,但结果确是不同。
截图202507150924203606.jpg
可以看到变换了前后顺序,输出的值也出错了,不知是什么原因?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-22 08:27:07

6

主题

26

回帖

132

积分

注册会员

积分
132
发表于 2025-7-15 09:39:37 | 显示全部楼层
问题找到了,原来是STC8H8K64U与STC32G128K的DMA_UR1R_DONE寄存器位数是不同的,32位的是16位长度,所以可以直接输出,但是STC8H8K64U是8位的,直接输出就是会有问题。但是按下RST键会有连续的串口输入信号输入或就不知为什么了,不知道大家的板子是不是也是这个样子的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:524
  • 最近打卡:2025-08-11 07:16:53
已绑定手机

86

主题

5879

回帖

1万

积分

超级版主

积分
10609
发表于 2025-7-15 10:01:10 | 显示全部楼层
数据类型不一致,使用%bu或%02X试一下
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-8-11 13:18 , Processed in 0.132451 second(s), 65 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表