1:RTC的两个获取时间的代码要写到实时循环里面,最好写在需要用到时间的代码跟前,不然会发生时间不流动的情况
HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN);
2:每个计时器和PWM刚开始都要进行一次使能,
HAL_TIM_Base_Start(&htim2);
3:adc的使能最好放在函数跟前,PWM可以放在主函数的前段
4:输入捕获在使用完readcaptureval()函数后,一定记得把对应tim的cnt归零
以及输入捕获需要在一开始就使能,类似usart
并且,最重要的是,输入捕获的使能是:
HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
末尾必须有IT,不然在不熟练输入捕获的情况下发生一个bug查三天的情况(别问我怎么知道的emmm,痛,太痛了,全都是因为这个错误,一群人盯了半天不知道为啥)
5:如何在不使用HAL_Dealy()的情况下实现规律间隔闪烁(或者是记时5s之类的需求)???
两种方法,一种是用uwtick来记时,一种是再定一个tim计时器来记时,前者的话套用减速函数即可,后者需要cubemx重新配置,但我个人喜欢后者一点,因为数字逻辑更简单(本人数学不好)
明天就是省赛了,加油!!!