描述
最近硬件四轴很火,了解了很久,还是选择了MiniFly,主要还是资料多,后边可以有人讨论,不像很多就是建了个群,研究问题还是在论坛方便很多。
四轴终于拿到手,功能很强大,主要是还支持二次开发,可以研究下玩玩小四轴了
还是先从硬件入手分析下
1.系统框架
主体可以分成两个小系统,后续可以按照这个顺序分析代码
1.通信部分---基于M0和NFR51822,包括电源管理
2.控制部分---基于M4和外围传感器
2.比较关注的电源部分
电源还是比较考究,直接包含了充电功能,不用每次使用外置的充电模块(之前自制过一个充电模块,看来以后可以集成到电路里了)
按键断电功能这个比较喜欢:这个是NFR51822控制VEN_D引脚来实现断电的
上个NFR51822部分电路
开始看代码,大致看了下程序,先是监测按键状态
/*按键扫描处理*/
void buttonProcess()
{
static unsigned int lastTick;
static unsigned int pressedTick;
static bool pressed = false;
if (lastTick != systickGetTick())
{
lastTick = systickGetTick();
if(pressed==false && BUTTON_READ()==BUTTON_PRESSED)
{
pressed = true;
pressedTick = systickGetTick();
}
else if(pressed==true)
{
if(BUTTON_READ()==BUTTON_RELEASED)
pressed = false;
if ((systickGetTick()-pressedTick) > BUTTON_LONGPRESS_TICK)
state = buttonLongPress;
else if(BUTTON_READ()==BUTTON_RELEASED)
state = buttonShortPress;
}
}
}
/*获取按键状态*/
buttonEvent_e buttonGetState()
{
buttonEvent_e currentState = state;
state = buttonIdle;
return currentState;
}
打开APP阅读更多精彩内容