移动电源项目完成总结

一:遇到的问题

         1:上拉下拉问题:

做一个东西之前一定要确保硬件稳定,比如升压IC输出的脉冲是不稳定的,高电平太高,超过输入电压*0.7,而且低电压也不是0V,所以需要我做下拉处理。

         2:获取脉冲的方法:

                   适用于有周期的脉冲,读取脉冲的个数。

 

              if(GPIO_Read_Status(GPIOA0,6) == 1)

              {

                            text1++;

                            FLAGA=1;

              }

              else if(GPIO_Read_Status(GPIOA0,6) == 0)

              {

                            text2++;

                            FLAGB=1;

              }

                   算法思想,在定时器里面获取脉冲的状态,用数字进行累加,高电平的数值加到多少之后,一旦到了低电平就进行对高电平的累加,一个周期结束统计高电平的脉冲。

 

 

              if(FLAGA==1)

                            {

                            if(text1>=280)

                            {

                                          LEDNUM=5;          

                                          text1=0;

                                          count=0;

                            }

                            else if(text2>=135)

                            {

                                          LEDNUM=count;

                                          count=0;

                            }

                            else if(text2>=11)

                            {}

                            text2 = 0;

                            FLAGA = 0;

              }

             

 

 

 

else if(FLAGB==1)

              {

                            if(text2>=280)       

                            {

                                          LEDNUM=6;

                                          count=0;

                                          text2=0;

                            }

                            else if(text1>=3)

                            {

                                          count++;

                            }

                            if((LEDNUM_COUNT2_num>=160))

                            {

                            text1 = 0;

                            FLAGB = 0;

              }

 

 

         3:ADC开启之后要进行低功耗,需要关闭模拟功能或者数字功能。

                            ADC->CR |= ADC12_ADCDIS;//关闭模拟功能,进入低功耗

         4:低功耗做的好,首先要保证不开看门狗,使用的IO口进入睡眠模式之前一定要处理成高组态模式。ASM32F003高组态不是设置为输入,而是默认状态,设置为0是高组态。

         设置为高组态后,在唤醒时一定要把状态设置回来,重新配置为原来的状态。

         5:做东西前一定要模块化,面向对象而不是面向结构,东西尽量模块化,可以留有接口。

         6:LED    灯的亮灭:

 

if(IO_state == 1)

              {

                            f_500ms++;

                            if(f_500ms >4)

                            {

                                          f_500ms = 0;

                                          if(testTm == 1)

                                                        testTm = 0;

                                          else

                                                        testTm = 1;

                                          if(Led_blink == 1)

                                                        GPIO_Set_Value(GPIOA0,3,testTm);

                                          else if(Led_blink == 2)

                                                        GPIO_Set_Value(GPIOC0,3,testTm);

                                          else if(Led_blink == 3)

                                                        GPIO_Set_Value(GPIOC0,2,testTm);

                            }

              }

              else

                            f_500ms = 0;

7:不要绝对相信调试模式,因为调试模式手动点的比较慢,可能会出现错误,要借助于现象或者串口来调试。

8:如果需要低功耗LED灯的驱动一定要用单片机来供电,这样低功耗模式下,IO口输出低电平即可,功耗会降低很多。

9:如果用ADC采集时电压过高,可以做分压处理,分压的电阻一定要尽量大,可以降低功耗。

10:下来电阻一定要大,1M的电阻。

11:发光二极管无论什么颜色正负极都是固定的。 1、直插的发光二极管:脚长的是正极,短的是负极。也可以仔细观察管子内部的电极,较小的是正极,大的类似于碗状的是负极。 2、贴片二极管:俯视,一边带彩色线的是负极,另一边是正极。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值