当前位置: 首页 > Linux

MiniFly四轴学习系列1---四轴零件系统及动力分析

时间:2023-04-07 03:01:21 Linux

最近很流行四轴五金。了解了半天,还是选择了准时的MiniFly。主要是Atom的论坛资料很多,大家以后可以讨论。与他们中的许多人不同,他们建立了一个小组。在论坛里研究问题就方便多了。终于拿到四轴了,功能很强大,主要还支持二次开发,可以自己研究玩玩小四轴或者先从硬件分析入手。1.系统框架主体可以分为两个小系统,后续可以按照这个时序分析代码1.通信部分---基于M0和NFR51822,包括电源管理2.控制部分---基于M4和周边传感器2.比较关心供电的电源部分还是比较精良的,直接包含了充电功能,不需要每次都用外接充电模块(我做了一个充电模块之前,看来以后可以集成到电路中)。我喜欢按键的关机功能:这是前面NFR51822电路中NFR51822控制VEN_D脚实现关机的部分。开始看代码,大致看下程序,先监听按键状态/*按键扫描处理*/voidbuttonProcess(){staticunsignedintlastTick;静态无符号整数pressedTick;静态布尔按下=假;如果(lastTick!=systickGetTick()){lastTick=systickGetTick();if(pressed==false&&BUTTON_READ()==BUTTON_PRESSED){按下=true;pressedTick=systickGetTick();}elseif(pressed==true){if(BUTTON_READ()==BUTTON_RELEASED)pressed=false;如果((systickGetTick()-pressedTick)>BUTTON_LONPRESS_TICK)state=buttonLongPress;elseif(BUTTON_READ()==BUTTON_RELEASED)????????????????state=buttonShortPress;????????}????}}/*获取按键状态*/buttonEvent_ebuttonGetState(){????buttonEvent_ecurrentState=state;????state=buttonIdle;????returncurrentState;}然后就是在主函数中进行相应Let’snottalkabouttheoperation,let’stakealookathowtorealizethepowerswitch:sointheend,theF1partshouldstillhavepower,buttheconsumptionisless.Lookingforasolutionthatcancompletelycutoffthepower??/*开启电源*/voidpmPowerOn(void){????nrf_gpio_cfg_output(UART_TX_PIN);???//使能串口TX????nrf_gpio_pin_set(UART_TX_PIN);????????nrf_gpio_cfg_output(RADIO_PAEN_PIN);//开启无线功能????nrf_gpio_pin_set(RADIO_PAEN_PIN);????????nrf_gpio_cfg_output(PM_VBAT_SINK_PIN);//设置ADC????nrf_gpio_pin_clear(PM_VBAT_SINK_PIN);????pmStartAdc();???//开启ADC转换}/*关闭电源*/voidpmPowerOff(void){???????nrf_gpio_cfg_input(UART_TX_PIN,NRF_GPIO_PIN_PULLDOWN);????uartDeinit();????????nrf_gpio_cfg_input(STM_NRST_PIN,NRF_GPIO_PIN_PULLDOWN);????nrf_gpio_pin_clear(STM_NRST_PIN);nrf_gpio_pin_clear(PM_VCCEN_PIN);//TurnoffLDOenablecontrolpinLED_OFF();nrf_gpio_pin_clear(RADIO_PAEN_PIN);//TurnoffPAnrf_gpio_cfg_input(PM_VBAT_SINK_PIN,NRF_GPIO_PIN_NOPULL);????NRF_POWER->SYSTEMOFF=1UL;????while(1);?//进入死循环}voidpmInit(){???????/*STM32电源配置*/????nrf_gpio_cfg_output(PM_VCCEN_PIN);????nrf_gpio_pin_set(PM_VCCEN_PIN);?????//使能stm32电源????msDelay(100);????????/*STM32复位*/????nrf_gpio_cfg_output(STM_NRST_PIN);????nrf_gpio_pin_clear(STM_NRST_PIN);????msDelay(100);???????nrf_gpio_pin_set(STM_NRST_PIN);????msDelay(100);???????nrf_gpio_cfg_input(USB_CONNECTED_PIN,NRF_GPIO_PIN_NOPULL);????nrf_gpio_cfg_input(PM_CHG_STATE_PIN,NRF_GPIO_PIN_PULLUP);pmPowerOn();//Turnonthepower}

最新推荐
猜你喜欢