相关文章推荐

背景说明

在做stm32的时候,使用的是前后台的裸机逻辑,没有使用实际的操作系统,而在while循环中,获取到上位机的指令后,需要进行相应的操作,实现操作很简单,但是要保证得到该指令后只能执行一次相应的操作,这就需要使用一个标志位来实现这个功能加以保证,虽然逻辑简单,但是在我初次接触嵌入式和C语音的时候也花了一番力气。借此掘金的征文比赛,予以记录。


实现逻辑

解析中在接收到上位机的指令后,执行操作,处置标志位flag 执行循环中,通过read_Auto_value_flag保证执行一次EEPROM操作。执行一次后就置为1


代码实例

下面是以按键控制的操作中,保证eeprom设备只读写一次的操作。


//1————————进入图像自动模式设置

if(KEY4_count==2)

{
                        Q1=1;
                        if(KEY1_flag)//+
                                 read_Auto_value_flag= 0;
                                 //标志位处置0
                                 L1++;
                                 if(L1>2)
                                    L1=0;
                        if(KEY2_flag)//-
                                 read_Auto_value_flag= 0;
                                 L1--;
                                 if(L1<0)
                                           L1=2;
                        if (L1>2)
                                    L1=0;
                        if(L1<0)
                                           L1=2;
                        if(0== read_Auto_value_flag)
                                 read_Auto_value_flag= 1;
                                   //标志位处置1
                                 EEPROM_DataBuff[0]= L1;//自动 0、1、2对应值1、2、3???
                                 EEPROM_WriteBuffer(AUTO_VAL,EEPROM_DataBuff,1);      //一次将多个参数保存
                                 delay_ms(50);
                                 IR_ReadParameter_EEPROM();
                                 if(L1==1)
                                           SetCameraValue(11,10,1);//发送亮度优化
                                           SetCameraValue(11,10,3);//直方图
                                 delay_ms(50);
                                 if(L3==255)
                                           SetCameraValue1(1,4,0xfe);//增益
                                 }else
                                           SetCameraValue1(1,4,L3);//增益
                                 delay_ms(50);
                                 if(L1!= 1)
                                           if(L4== 255)
                                                    SetCameraValue1(0,5,0xfe);//亮度
                                           }else
                                                    SetCameraValue1(0,5,L4);//亮度
                                           delay_ms(50); 
                        KEY1_count=0;
                        KEY2_count=0;                           
            
判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。
Win32汇编:各种语句的构造方式
整理复习汇编语言的知识点,以前在学习《Intel汇编语言程序设计 - 第五版》时没有很认真的整理笔记,主要因为当时是以学习理解为目的没有整理的很详细,这次是我第三次阅读此书,每一次阅读都会有新的收获,这次复习,我想把书中的重点,再一次做一个归纳与总结(注:16位汇编部分跳过),并且继续尝试写一些有趣的案例,这些案例中所涉及的指令都是逆向中的重点,一些不重要的我就直接省略了,一来提高自己,二来分享知识,转载请加出处,敲代码备注挺难受的。
 
推荐文章