基本信息
源码名称:stm8l四按键状态机实现
源码大小:3.18M
文件格式:.rar
开发语言:C/C++
更新时间:2020-10-02
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 5 元 
   源码介绍
状态机实现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;
     

  }