找回密码
 立即注册
查看: 73|回复: 6

STC15F2K60S2发送代码请教

[复制链接]

该用户从未签到

2

主题

9

回帖

50

积分

注册会员

积分
50
发表于 2024-4-14 22:22:02 | 显示全部楼层 |阅读模式
  1. void main()
  2. {
  3.         UARTInit(); //串口初始化
  4.         while(1)
  5.         {
  6.                 TI = 1;
  7.                 puts("STC15F60S2单片机测试");
  8.                 while(!TI);
  9.                 TI = 0;
  10.         }        
  11. }
  12. /* UART中断服务函数 */
  13. void InterruptUART() interrupt 4
  14. {
  15.     EA = 0;
  16.     if(RI)
  17.     {
  18.         RI = 0;
  19.         RxdByte = SBUF;
  20.         SBUF = RxdByte;  //接收到的数据又直接发回
  21.     }
  22.     EA = 1;
  23. }
  24. 这段简单代码,while(!TI);会不会出现死循环;  
复制代码



回复 送花

使用道具 举报

该用户从未签到

2

主题

9

回帖

50

积分

注册会员

积分
50
 楼主| 发表于 2024-4-14 22:24:12 | 显示全部楼层
        while(1)
        {
                 TI = 1;
                puts("STC15F60S2单片机测试");
                while(!TI);
                TI = 0;

                delay(50);//50ms延时
        }        修正;添加延时函数
回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9323

回帖

1万

积分

管理员

积分
13908
发表于 2024-4-15 07:33:51 | 显示全部楼层
截图202404150733473068.jpg
回复 支持 反对 送花

使用道具 举报

该用户从未签到

2

主题

9

回帖

50

积分

注册会员

积分
50
 楼主| 发表于 2024-4-15 08:11:59 | 显示全部楼层

工具里面的代码有看见; 现在讨论一下这个机制. 当void InterruptUART() interrupt 4函数中没有进行 TI位的判定;   在发送函数中while(!TI);   这样处理不当有BUG的原因是啥;看网络上面说的不是很明白
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    慵懒
    5 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

    积分
    2459
    发表于 2024-4-15 09:01:37 | 显示全部楼层
    dabing0577 发表于 2024-4-15 08:11
    工具里面的代码有看见; 现在讨论一下这个机制. 当void InterruptUART() interrupt 4函数中没有进行 TI位的 ...

    一个是中断的方式处理标志位  
    一个是轮询的方式处理标志位
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    2

    主题

    9

    回帖

    50

    积分

    注册会员

    积分
    50
     楼主| 发表于 2024-4-15 15:30:13 | 显示全部楼层
    _奶咖君_ 发表于 2024-4-15 09:01
    一个是中断的方式处理标志位  
    一个是轮询的方式处理标志位

    那么  按照楼主位代码  会出现啥隐患呢
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    5 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

    积分
    2459
    发表于 2024-4-15 16:22:01 | 显示全部楼层
    dabing0577 发表于 2024-4-15 15:30
    那么  按照楼主位代码  会出现啥隐患呢

    我能想到的,,,你没初始化串口就直接用了,,TI不会置位,,就卡死在while循环中了
    别的就没遇见过啥问题,,
    还有就是while这里会死等 浪费CPU  
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-5 19:29 , Processed in 0.065820 second(s), 56 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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