迪文DGUS屏用OS和下位机配合实现“通讯故障”报警!

本文介绍了一种利用迪文OS与STM32F103配合实现串口通讯故障检测的方法。通过定时向触摸屏发送特定数据,并在通讯异常时显示“通讯故障”,确保了系统的稳定性。

做迪文的屏幕通过串口与STM32F103通讯,项目需求在通讯断开后需要在触摸屏上提示“通讯故障”字样,在迪文官网看到的倒计时OS程序(之前接触过迪文OS),受到启发觉得通过OS的和SMT32F103之间的配合应该可以实现,然后动手实验了一下确实是可以的,下面是代码,给之后想实现该功能得工程师们提供一个参考,希望也能帮助大家!

 CALL T5_S_MARK
 END
 
T5_S_MARK:      
         MOVDR 0x20,R10,7   ;读取时间,R16对应得为 秒
         CJNE R16,R245,R><R245   ;判断秒与时间时间是否相等,不相等跳转,相等执行下一条
         GOTO COM_S
                 
R><R245:

         MOV R16,R245,1   ;当前秒写到R245

         INC R250,0,1   ;1秒会执行到这里1次,R250自加1
         IJNE R250,3,COM_S   ;是否到3S,到3S判断是否产生中断故障
        
         LDWR   R0,0x2900 ;指定DGUS 变量地址
         MOVXR  R10 ,1, 1
  
       ​  IJNE R10,1,COM_FAIL   ; 若产生中断故障跳到COM_FAIL   


      ​   LDWR   R0,0x2900 ;指定DGUS 变量地址
      ​   LDWR   R10,0x0000
         MOVXR  R10, 0, 1
  
         LDBR R250,0,1   ;R250=0
         GOTO   COM_S
COM_FAIL:
       ​  LDWR   R10,58 ;待跳转故障页面,我做得是58
      ​   MOVRD  R10,3,2
  
        ​ LDWR   R0,0x2900 ;指定DGUS 变量地址
      ​   LDWR   R10,0x0000
         MOVXR  R10, 0, 1
  
         LDBR R250,0,1   ;R250=0
COM_S:  RET

上面这段程序需要STM32F103通过串口向触摸屏得0X2900写0x0101数据,1S写入一次,写入时间过长会报故障,故障页面58;之所以是写入0x0101是我懒得区分R10和R11哪个是高8位哪个是低8位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值