在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例C/C++语言基础 → stm8l四按键状态机实现

stm8l四按键状态机实现

C/C++语言基础

下载此实例
  • 开发语言:C/C++
  • 实例大小:3.18M
  • 下载次数:11
  • 浏览次数:169
  • 发布时间:2020-10-02
  • 实例类别:C/C++语言基础
  • 发 布 人:wj70sq
  • 文件格式:.rar
  • 所需积分:5
 相关标签: STM8 4按键 状态机

实例介绍

【实例简介】状态机实现4按键  数码管595*2  四位显示  模块编程

【实例截图】

一、开发说明
1、开发环境: IAR For STM8 V3.10.1
2、标准外设库: V1.6.2
3、硬件: 泉志stm8l151k4t6核酸检测板 & ST-LINK/V2下载调试器

二、例程说明
例程主要内容是:配置UART1:恢复USART1的缺省值-使能USART1外设时钟、将
        USART1的TX&RX引脚映射到PA2&PA3(默认的是PC3&PC2)并配置IO功能,初始化
        UART1,波特率9600,数据位8位,停止位1位,无奇偶校验,使能发送&接收,
        在主函数中将系统时钟配置为16M,初始化UART1,然后打印信息(重定向printf
        和getchar在main.c文件中实现),主函数循环中等待用户输入信息并打印。
        
        注:本例程的测试条件需要一个USB转TTL连接技新STM8L051F3核心板与电脑PC,并
        在电脑的上位机(一般是串口调试助手)实现。(TXD-->PA3、RXD-->PA2、GND-->GND)。

三、使用说明
1、打开工程
2、编译:Project--->Make(快捷键F7)
3、下载:Project--->Download and Debug(快捷键Ctrl D)
4、效果:上电打印:UART1的测试例程,重定向C语言库printf&scanf函数
                           Enter Text



四  开发过程:  2020/08/14  状态机实现4按键  数码管595*2  四位显示  模块编程
      09/02  iic 读取ds3231 通过逻辑分析仪0x00 0x02的值。 u8 IIC_ReadByte(u8 ADDR)
没有在头文件里声明,导致传参0x00  逻辑分析仪显示传的是0x0f,数据就异常。非常奇怪啊!
在头文件里声明后正常。

【核心代码】 if(flag_T4==1)
  {
 
  val=GPIO_ReadInputData(GPIOB)&0x0f;
 

    switch(KeyScanState)
    {
        case KeyScanState_0:
               {if( val!=0x0f )
                 KeyScanState=KeyScanState_1;
                 val_back = val;
               break;

  }

        case KeyScanState_1 :
            { //if(val!=0x0f)
                 if(val=val_back)
{
                    if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0)==0)    KEY1_CLICK();
                
                         else if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==0) KEY2_CLICK();
                         else if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2)==0) KEY3_CLICK();
                         else if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_3)==0) KEY4_CLICK();

       
KeyScanState=KeyScanState_2;
                }

              else {KeyScanState=KeyScanState_0;}
break;
              

              }


        case KeyScanState_2 :
            { if(val==0x0f)  KeyScanState=KeyScanState_0;
break;
            
            }  
        default:  break;
        } 
      
    
      flag_T4=0;
     

  }

标签: STM8 4按键 状态机

实例下载地址

stm8l四按键状态机实现

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警