找回密码
 立即注册
楼主: QQ624353765

进入掉电模式用串口唤醒为什么要发两次串口数据

[复制链接]
已绑定手机

307

主题

584

回帖

2961

积分

金牌会员

积分
2961
 楼主| 发表于 2026-10-28 16:36:07 | 显示全部楼层
jrc*** 发表于 2026-10-28 16:24
根据12楼的视频图,你判断唤醒的方式是,看上位机是否收到0x12;
同时视频中有出现 在收到0x12后输出"验证码 ...

我这是测试代码,看他有没有被唤醒,正常唤醒不需要任何反馈的,我发个12只是看看有没有被唤醒
回复

使用道具 举报 送花

已绑定手机

307

主题

584

回帖

2961

积分

金牌会员

积分
2961
 楼主| 发表于 2026-10-28 16:49:41 | 显示全部楼层
梁*** 发表于 2026-10-28 15:49
检测MCU电流,只一个字节,看电流是否增大,增大就是醒过来了。
MCU内部的硬件检测下降沿,一旦出现下降 ...

FOC.zip (1.69 MB, 下载次数: 24)

很奇怪,我把void DiaoDian(){//掉电模式   放到主函数测试功能是正常的,但在我的程序架构中这个函数不正常

单片机就是STCFOC的开发板,压缩包里有上位机
截图202610281642202677.jpg
1先获取机号
2选择控制指令
3选择掉电
4发送
这时已经进入DiaoDian()函数
截图202610281644112319.jpg
上电就给串口发送一个00H,这里就不正常

截图202610281645563035.jpg
第四步会进入这个函数把MoShi改为MS_DD;
截图202610281647043418.jpg
一个循环下来会进入DiaoDian()函数
截图202610281648067931.jpg
中间会调用一次JiCunQi_XiuMian()寄存器休眠函数
除初始化的寄存器外,什么都没改动
帮我看下怎么回事,正常唤醒后接着是复位,我把复位屏蔽了,恢复下,复位之后就跟上电没区别了
回复

使用道具 举报 送花

已绑定手机

2

主题

154

回帖

470

积分

中级会员

积分
470
发表于 2026-10-28 16:54:22 | 显示全部楼层
DiaoDian()中唤醒后,没有切换模式,依然再次进掉电模式。
见main()中的这句
        for(;;)MODE_F[MoShi]();
回复

使用道具 举报 送花

已绑定手机

307

主题

584

回帖

2961

积分

金牌会员

积分
2961
 楼主| 发表于 2026-10-28 16:56:19 | 显示全部楼层
jrc*** 发表于 2026-10-28 16:54
DiaoDian()中唤醒后,没有切换模式,依然再次进掉电模式。
见main()中的这句
        for(;;)MODE_F[MoShi]();

正常发送一个字节就能唤醒,现在需要发送两次,我要查明原因,要在这个函数里面循环
正常唤醒后要复位的
看楼上,我重新发了下情况
回复

使用道具 举报 送花

已绑定手机

2

主题

154

回帖

470

积分

中级会员

积分
470
发表于 2026-10-28 17:03:58 | 显示全部楼层
发一次就能唤醒,这不用怀疑,
按上面我提到的,唤醒后,亮个灯,或某个脚输出H,或振一下电机,等等板上可以观察的方式,就方便确认是否唤醒。
通信问题,就另外查,
回复

使用道具 举报 送花

已绑定手机

307

主题

584

回帖

2961

积分

金牌会员

积分
2961
 楼主| 发表于 2026-10-28 18:48:19 | 显示全部楼层
梁*** 发表于 2026-10-28 15:49
检测MCU电流,只一个字节,看电流是否增大,增大就是醒过来了。
MCU内部的硬件检测下降沿,一旦出现下降 ...

截图202610281844584969.jpg


问题找到了,我是在这个函数里面通讯的,处理完通讯就进入空闲模式了,所以为什么要发送两次才正常

不好意思,程序有点复杂了,忘记了

点评

不要到处使用空闲或睡眠,一般在主循环的最下面进入空闲或睡眠,即跑一圈主程序,再进入空闲或睡眠,别的地方不要。  详情 回复 发表于 2026-10-28 21:51
回复

使用道具 举报 送花

83

主题

8317

回帖

1万

积分

超级版主

积分
17932
发表于 2026-10-28 21:51:06 | 显示全部楼层
QQ6243*** 发表于 2026-10-28 18:48
问题找到了,我是在这个函数里面通讯的,处理完通讯就进入空闲模式了,所以为什么要发送两次才正常

不 ...

不要到处使用空闲或睡眠,一般在主循环的最下面进入空闲或睡眠,即跑一圈主程序,再进入空闲或睡眠,别的地方不要。
回复

使用道具 举报 送花

已绑定手机

11

主题

484

回帖

1362

积分

金牌会员

积分
1362
发表于 2026-10-29 15:24:02 | 显示全部楼层
用STC8H1K08实测波特率不大于14400唤醒后首字节不会出错
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-11-8 02:40 , Processed in 0.071544 second(s), 76 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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