找回密码
 立即注册
查看: 187|回复: 12

这个是什么问题哦? 打开串口就出现这个 (已解决)

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-17 00:04:36
已绑定手机

142

主题

1688

回帖

2563

积分

金牌会员

积分
2563
发表于 2025-5-16 21:18:46 | 显示全部楼层 |阅读模式
把自己的代码里面加入了 "05-16路ADC轮询-每路16次ADC转换取中间8次求平均值,USB-CDC虚拟串口返回结果"
这个里面的代码
如果不加这个 for循环就没问题.加入这个for循环就跳这个错误31

截图202505162118144887.jpg
截图202505162116565392.jpg

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-17 00:04:36
已绑定手机

142

主题

1688

回帖

2563

积分

金牌会员

积分
2563
发表于 2025-5-16 21:19:19 | 显示全部楼层
我测试了原代码没有问题.
把部分adc的代码移植到我的代码里面就出现这个了.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-17 00:04:36
已绑定手机

142

主题

1688

回帖

2563

积分

金牌会员

积分
2563
发表于 2025-5-16 21:49:46 | 显示全部楼层
找到原因了..
把这个delayms去掉就没问题了
我的天.
原代码上面也有delayms啊
搞得晕晕的了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-17 00:04:36
已绑定手机

142

主题

1688

回帖

2563

积分

金牌会员

积分
2563
发表于 2025-5-16 22:16:14 | 显示全部楼层
很奇怪 这个delayms (20) 可以用没有问题.正常打印... 超过20就不行了.就出现上面那个图


adc_tongdao2 = Get_ADC12bitResult(2);       
adc_tongdao15 = Get_ADC12bitResult(15);       

vcc = (int)(4096L * 1194 / adc_tongdao15);
               
                for(i=0; i<16; i++)
                {
                        delayms(20);
//                        ADC_convert(3);                //发送固定通道AD值

                        ADC_convert(i);                //发送轮询通道AD值
                        if((i & 7) == 7)        //分两行打印
                        {
                                printf(" dao2= %u vcc= %u \r\n",adc_tongdao2,vcc);
                        }
                       
                }
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-06-16 07:06:57
已绑定手机

79

主题

5131

回帖

9128

积分

超级版主

DebugLab

积分
9128
发表于 2025-5-16 22:17:30 | 显示全部楼层
软件延时函数导致程序阻塞
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-17 00:04:36
已绑定手机

142

主题

1688

回帖

2563

积分

金牌会员

积分
2563
发表于 2025-5-16 22:26:50 | 显示全部楼层
固定值,轮询值都可以正常打印温度和 外部电压
可就是不能delayms超过20 .一直打不停

截图202505162225003260.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-17 00:04:36
已绑定手机

142

主题

1688

回帖

2563

积分

金牌会员

积分
2563
发表于 2025-5-16 22:28:20 | 显示全部楼层
Debu*** 发表于 2025-5-16 22:17
软件延时函数导致程序阻塞

意思是我的原程序,有个地方和这个阻塞了是吗?
我用官方那个代码,我看也是延迟没有问题.
如果是阻塞,那我用个中断200ms的标志位应该就能解决了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:564
  • 最近打卡:2025-06-16 10:28:17
已绑定手机

50

主题

1816

回帖

3130

积分

论坛元老

积分
3130
发表于 2025-5-16 22:30:29 | 显示全部楼层
这个应该就是程序堵塞了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-17 00:04:36
已绑定手机

142

主题

1688

回帖

2563

积分

金牌会员

积分
2563
发表于 2025-5-16 22:35:42 | 显示全部楼层
jw*** 发表于 2025-5-16 22:30
这个应该就是程序堵塞了

是了.
弄了半天终于弄好了.
有可能主频开的太低了.
我开11.0592
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-06-17 00:04:36
已绑定手机

142

主题

1688

回帖

2563

积分

金牌会员

积分
2563
发表于 2025-5-16 22:43:30 | 显示全部楼层
终于全部搞清楚了.现在开delayms200ms也没问题了
我开了看门狗, 用的1秒左右.. 清看门狗也在1秒附近.
导致我delayms超过20ms,  没来得及喂狗,系统复位了

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-17 00:12 , Processed in 0.174293 second(s), 93 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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