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

学习休眠唤醒遇到的问题:1无法开启休眠 2舍弃一下功能后能进入休眠但无法唤醒

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:141
  • 最近打卡:2026-03-06 09:40:40
已绑定手机

22

主题

2357

回帖

3509

积分

论坛元老

积分
3509
发表于 昨天 14:53 | 显示全部楼层
实验现象:
截图202603061453222770.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:141
  • 最近打卡:2026-03-06 09:40:40
已绑定手机

22

主题

2357

回帖

3509

积分

论坛元老

积分
3509
发表于 昨天 14:55 | 显示全部楼层
这里驱动程序有一句逻辑搞反了:

if(UART1_RX_STA & 0x8000)  //判断16位数据UART1_RX_STA最高位是否=1

高位是1就应该结束接收,只有最高位=0的时候才能接收,所以要改成:

if(!(UART1_RX_STA & 0x8000))  //判断16位数据UART1_RX_STA最高位是否=1
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:141
  • 最近打卡:2026-03-06 09:40:40
已绑定手机

22

主题

2357

回帖

3509

积分

论坛元老

积分
3509
发表于 昨天 15:12 | 显示全部楼层
我手头的板子P36 接74HC595 (可以把JP595拔掉解决)

AD/DA  光敏 XPT2046 用到P36 是焊死的,导致接收的字符出现乱码

无线接口 NRF 2041 接P37

真的只能把核心板拆下来,用杜邦线连接HC6800-ES V2.0 的P30 P31 去核心板P3.6P3.7

就一切正常

截图202603061517163484.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:141
  • 最近打卡:2026-03-06 09:40:40
已绑定手机

22

主题

2357

回帖

3509

积分

论坛元老

积分
3509
发表于 昨天 15:27 | 显示全部楼层
然后把板子上P30(RxD) 接核心板RxD2(P3.6),板子上P31(TxD) 接核心板TxD2(P3.7),

P36P37有没有其他公用设备,且焊死,只能把核心板拆下来,2者共地,只使用HC6800-ESV2.0 的USC转TTL电路

见下图:


截图202603061527019315.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:141
  • 最近打卡:2026-03-06 09:40:40
已绑定手机

22

主题

2357

回帖

3509

积分

论坛元老

积分
3509
发表于 昨天 15:31 | 显示全部楼层
把主函数改动一下:

  1. ////////////////////////////////////////
  2. // 项目主函数
  3. // 入口参数: 无
  4. // 函数返回: 无
  5. ////////////////////////////////////////
  6. void main(void)
  7. {
  8.     //<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
  9.     // 在此添加用户主函数初始化代码
  10.         u16 len = 0;
  11.         u16 i = 0;
  12.     //<<AICUBE_USER_MAIN_INITIAL_END>>
  13.     SYS_Init();
  14.     //<<AICUBE_USER_MAIN_CODE_BEGIN>>
  15.     // 在此添加主函数中运行一次的用户代码  
  16.     printf("Hello World !\n");
  17.     //<<AICUBE_USER_MAIN_CODE_END>>
  18.     while (1)
  19.     {
  20.         //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
  21.         // 在此添加主函数中用户主循环代码
  22.                 if(UART1_RX_STA & 0x8000)  //判断16位数据UART1_RX_STA最高位是否=1
  23.                 {
  24.                         len= UART1_RX_STA%0x3FFF; //取出状态字中的长度
  25.                         for(i=0;i<len;i++)
  26.                         {
  27.                                 UART1_SendData(UART1_RX_BUF[i]);
  28.                                 while(!UART1_CheckTxFlag());  //等待每个字符发送完成
  29.                                 UART1_ClearTxFlag();            //清除串口发送中断标志
  30.                         }
  31.                         UART1_RX_STA = 0; //本次发送完成,清状态字准备好下一次接收
  32.                         printf("Hello World !\n");
  33.                 }
  34.         //<<AICUBE_USER_MAIN_LOOP_END>>
  35.     }
  36. }
复制代码


证实printf()函数也是正常的,到处可以本实验结束
截图202603061529575069.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-3-7 15:32 , Processed in 0.108079 second(s), 57 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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