2023-12-11 21:45:06 +08:00
|
|
|
|
/*********************************************************************************************************************
|
2023-12-13 21:54:20 +08:00
|
|
|
|
* CH32V307VCT6 Opensourec Library <EFBFBD><EFBFBD><EFBFBD><EFBFBD>CH32V307VCT6 <EFBFBD><EFBFBD>Դ<EFBFBD>⣩<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹٷ<EFBFBD> SDK <EFBFBD>ӿڵĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
|
|
|
|
|
|
* Copyright (c) 2022 SEEKFREE <EFBFBD><EFBFBD><EFBFBD>ɿƼ<EFBFBD>
|
|
|
|
|
|
*
|
2024-01-04 22:07:13 +08:00
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD> CH32V307VCT6 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2023-12-13 21:54:20 +08:00
|
|
|
|
*
|
|
|
|
|
|
* CH32V307VCT6 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2024-01-04 22:07:13 +08:00
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᷢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> GPL<EFBFBD><EFBFBD>GNU General Public License<EFBFBD><EFBFBD><EFBFBD><EFBFBD> GNU ͨ<EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD> GPL <EFBFBD>ĵ<EFBFBD> 3 <EFBFBD>棨<EFBFBD><EFBFBD> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2023-12-13 21:54:20 +08:00
|
|
|
|
*
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κεı<EFBFBD>֤
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><EFBFBD>ʺ<EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>;<EFBFBD>ı<EFBFBD>֤
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD> GPL
|
|
|
|
|
|
*
|
|
|
|
|
|
* <EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD>յ<EFBFBD>һ<EFBFBD><EFBFBD> GPL <EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><https://www.gnu.org/licenses/>
|
|
|
|
|
|
*
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD> GPL3.0 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤Э<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>İ汾
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD> libraries/doc <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> GPL3_permission_statement.txt <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libraries <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> LICENSE <EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ӭ<EFBFBD><EFBFBD>λʹ<EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>뱣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<EFBFBD><EFBFBD>İ<EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> isr
|
|
|
|
|
|
* <EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ɶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾
|
|
|
|
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>Ϣ <EFBFBD>鿴 libraries/doc <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> version <EFBFBD>ļ<EFBFBD> <EFBFBD>汾˵<EFBFBD><EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MounRiver Studio V1.8.1
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨ CH32V307VCT6
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
|
|
|
|
|
|
*
|
|
|
|
|
|
* <EFBFBD>ļ<EFBFBD>¼
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ע
|
2024-01-04 22:07:13 +08:00
|
|
|
|
* 2022-09-15 <EFBFBD><EFBFBD> W first version
|
2023-12-13 21:54:20 +08:00
|
|
|
|
********************************************************************************************************************/
|
2023-12-11 21:45:06 +08:00
|
|
|
|
|
|
|
|
|
|
#include "zf_common_headfile.h"
|
2024-02-25 11:49:10 +08:00
|
|
|
|
|
2024-01-04 22:07:13 +08:00
|
|
|
|
#include "by_imu.h"
|
2024-01-08 22:08:43 +08:00
|
|
|
|
#include "by_buzzer.h"
|
2024-02-25 11:49:10 +08:00
|
|
|
|
#include "by_rt_button.h"
|
2024-03-04 15:05:40 +08:00
|
|
|
|
#include "by_frame.h"
|
2024-02-25 11:49:10 +08:00
|
|
|
|
|
2024-01-16 20:03:21 +08:00
|
|
|
|
#include "jj_motion.h"
|
2024-01-09 17:20:08 +08:00
|
|
|
|
#include "jj_blueteeth.h"
|
2023-12-13 21:54:20 +08:00
|
|
|
|
|
|
|
|
|
|
void NMI_Handler(void) __attribute__((interrupt()));
|
2023-12-11 21:45:06 +08:00
|
|
|
|
void HardFault_Handler(void) __attribute__((interrupt()));
|
|
|
|
|
|
|
|
|
|
|
|
void USART1_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void USART2_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void USART3_IRQHandler(void) __attribute__((interrupt()));
|
2023-12-13 21:54:20 +08:00
|
|
|
|
void UART4_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void UART5_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void UART6_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void UART7_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void UART8_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void DVP_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
// void TIM1_BRK_IRQHandler (void) __attribute__((interrupt()));
|
|
|
|
|
|
void TIM1_UP_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
// void TIM1_TRG_COM_IRQHandler (void) __attribute__((interrupt()));
|
|
|
|
|
|
// void TIM1_CC_IRQHandler (void) __attribute__((interrupt()));
|
|
|
|
|
|
void TIM2_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void TIM3_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void TIM4_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void TIM5_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void TIM6_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void TIM7_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
// void TIM8_BRK_IRQHandler (void) __attribute__((interrupt()));
|
|
|
|
|
|
void TIM8_UP_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
// void TIM8_TRG_COM_IRQHandler (void) __attribute__((interrupt()));
|
|
|
|
|
|
// void TIM8_CC_IRQHandler (void) __attribute__((interrupt()));
|
|
|
|
|
|
// void TIM9_BRK_IRQHandler (void) __attribute__((interrupt()));
|
|
|
|
|
|
void TIM9_UP_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
// void TIM9_TRG_COM_IRQHandler (void) __attribute__((interrupt()));
|
|
|
|
|
|
// void TIM9_CC_IRQHandler (void) __attribute__((interrupt()));
|
|
|
|
|
|
// void TIM10_BRK_IRQHandler (void) __attribute__((interrupt()));
|
|
|
|
|
|
void TIM10_UP_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
// void TIM10_TRG_COM_IRQHandler (void) __attribute__((interrupt()));
|
|
|
|
|
|
// void TIM10_CC_IRQHandler (void) __attribute__((interrupt()));
|
2023-12-11 21:45:06 +08:00
|
|
|
|
|
|
|
|
|
|
void EXTI0_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void EXTI1_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void EXTI2_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void EXTI3_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void EXTI4_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void EXTI9_5_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
void EXTI15_10_IRQHandler(void) __attribute__((interrupt()));
|
|
|
|
|
|
|
|
|
|
|
|
void USART1_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) {
|
2024-03-02 16:00:29 +08:00
|
|
|
|
|
2023-12-11 21:45:06 +08:00
|
|
|
|
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
void USART2_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) {
|
2024-01-16 20:03:21 +08:00
|
|
|
|
uart_query_byte(UART_2, &bt_buffer);
|
|
|
|
|
|
bt_rx_flag = true;
|
2023-12-11 21:45:06 +08:00
|
|
|
|
USART_ClearITPendingBit(USART2, USART_IT_RXNE);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
void USART3_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (USART_GetITStatus(USART3, USART_IT_RXNE) != RESET) {
|
2024-03-02 16:00:29 +08:00
|
|
|
|
USART_ClearITPendingBit(USART3, USART_IT_RXNE);
|
2023-12-11 21:45:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-12-13 21:54:20 +08:00
|
|
|
|
void UART4_IRQHandler(void)
|
2023-12-11 21:45:06 +08:00
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (USART_GetITStatus(UART4, USART_IT_RXNE) != RESET) {
|
2024-03-02 16:00:29 +08:00
|
|
|
|
uint8_t data_s = 0;
|
|
|
|
|
|
uart_query_byte(UART_4, &data_s);
|
2024-03-04 15:05:40 +08:00
|
|
|
|
by_frame_parse_uart_handle(data_s);
|
2023-12-11 21:45:06 +08:00
|
|
|
|
USART_ClearITPendingBit(UART4, USART_IT_RXNE);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-12-13 21:54:20 +08:00
|
|
|
|
void UART5_IRQHandler(void)
|
2023-12-11 21:45:06 +08:00
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (USART_GetITStatus(UART5, USART_IT_RXNE) != RESET) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
camera_uart_handler();
|
|
|
|
|
|
USART_ClearITPendingBit(UART5, USART_IT_RXNE);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-12-13 21:54:20 +08:00
|
|
|
|
void UART6_IRQHandler(void)
|
2023-12-11 21:45:06 +08:00
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (USART_GetITStatus(UART6, USART_IT_RXNE) != RESET) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
|
|
|
|
|
|
USART_ClearITPendingBit(UART6, USART_IT_RXNE);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-12-13 21:54:20 +08:00
|
|
|
|
void UART7_IRQHandler(void)
|
2023-12-11 21:45:06 +08:00
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (USART_GetITStatus(UART7, USART_IT_RXNE) != RESET) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
wireless_module_uart_handler();
|
|
|
|
|
|
USART_ClearITPendingBit(UART7, USART_IT_RXNE);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-12-13 21:54:20 +08:00
|
|
|
|
void UART8_IRQHandler(void)
|
2023-12-11 21:45:06 +08:00
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (USART_GetITStatus(UART8, USART_IT_RXNE) != RESET) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
gps_uart_callback();
|
|
|
|
|
|
USART_ClearITPendingBit(UART8, USART_IT_RXNE);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DVP_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (DVP->IFR & RB_DVP_IF_FRM_DONE) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
camera_dvp_handler();
|
|
|
|
|
|
DVP->IFR &= ~RB_DVP_IF_FRM_DONE;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
void EXTI0_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line0)) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line0);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void EXTI1_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line1)) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line1);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void EXTI2_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line2)) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line2);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void EXTI3_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line3)) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line3);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void EXTI4_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line4)) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line4);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void EXTI9_5_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line5)) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line5);
|
|
|
|
|
|
}
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line6)) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line6);
|
|
|
|
|
|
}
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line7)) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line7);
|
|
|
|
|
|
}
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line8)) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line8);
|
|
|
|
|
|
}
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line9)) {
|
2023-12-22 22:39:59 +08:00
|
|
|
|
|
2024-02-07 10:24:11 +08:00
|
|
|
|
if (rotate_button == rotate_button_none) {
|
|
|
|
|
|
if (SET == gpio_get_level(E10)) {
|
|
|
|
|
|
rotate_button = rotate_button_backward;
|
|
|
|
|
|
queue_add_element(BY_BACKWARD);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
rotate_button = rotate_button_forward;
|
|
|
|
|
|
queue_add_element(BY_FORWARD);
|
|
|
|
|
|
}
|
2023-12-13 21:54:20 +08:00
|
|
|
|
}
|
2024-02-07 10:24:11 +08:00
|
|
|
|
|
2023-12-22 22:39:59 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line9);
|
2023-12-11 21:45:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void EXTI15_10_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line10)) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
|
|
|
|
|
|
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> (A10/B10..E10) <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> (A10/B10..E10) <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line10);
|
|
|
|
|
|
}
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line11)) {
|
2024-01-05 16:00:06 +08:00
|
|
|
|
static uint64_t time_via = 0;
|
2024-01-06 16:47:15 +08:00
|
|
|
|
system_delay_ms(10);
|
2024-01-05 15:55:17 +08:00
|
|
|
|
if (RESET == gpio_get_level(E11)) {
|
2024-01-06 16:47:15 +08:00
|
|
|
|
time_via = system_get_tick();
|
2024-01-05 15:55:17 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line11);
|
2024-01-06 16:47:15 +08:00
|
|
|
|
} else if (SET == gpio_get_level(E11)) {
|
|
|
|
|
|
time_via = system_get_tick() - time_via;
|
|
|
|
|
|
if (time_via > LONG_PRESS_THRESHOLD_TICK) {
|
|
|
|
|
|
rotate_button = rotate_button_press_long;
|
2024-01-08 22:08:43 +08:00
|
|
|
|
queue_add_element(BY_PRESS_LONG);
|
|
|
|
|
|
|
2024-01-06 16:47:15 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
rotate_button = rotate_button_press_short;
|
2024-01-08 22:08:43 +08:00
|
|
|
|
queue_add_element(BY_PRESS_SHORT);
|
2024-01-05 15:55:17 +08:00
|
|
|
|
}
|
2024-01-06 16:47:15 +08:00
|
|
|
|
time_via = 0;
|
2024-01-05 15:55:17 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line11);
|
2023-12-13 21:54:20 +08:00
|
|
|
|
}
|
2024-01-05 15:55:17 +08:00
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line12)) {
|
|
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line12);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line13)) {
|
|
|
|
|
|
// -----------------* ToF INT <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
|
|
|
|
|
|
tof_module_exti_handler();
|
|
|
|
|
|
// -----------------* ToF INT <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
|
|
|
|
|
|
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> (A13/B13..E13) <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
|
2023-12-11 21:45:06 +08:00
|
|
|
|
|
2024-01-05 15:55:17 +08:00
|
|
|
|
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> (A13/B13..E13) <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
|
2023-12-11 21:45:06 +08:00
|
|
|
|
|
2024-01-05 15:55:17 +08:00
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line13);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line14)) {
|
|
|
|
|
|
// -----------------* DM1XA <20><><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
|
|
|
|
|
|
dm1xa_light_callback();
|
|
|
|
|
|
// -----------------* DM1XA <20><><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
|
|
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line14);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (SET == EXTI_GetITStatus(EXTI_Line15)) {
|
|
|
|
|
|
// -----------------* DM1XA <20><>/<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
|
|
|
|
|
|
dm1xa_sound_callback();
|
|
|
|
|
|
// -----------------* DM1XA <20><>/<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
|
|
|
|
|
|
EXTI_ClearITPendingBit(EXTI_Line15);
|
|
|
|
|
|
}
|
2023-12-11 21:45:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TIM1_UP_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);
|
2024-01-16 20:03:21 +08:00
|
|
|
|
|
2024-03-02 16:05:24 +08:00
|
|
|
|
sport_motion();
|
2023-12-11 21:45:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TIM2_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) {
|
|
|
|
|
|
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
|
2023-12-11 21:45:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TIM3_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) {
|
|
|
|
|
|
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
|
2023-12-11 21:45:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TIM4_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET) {
|
|
|
|
|
|
TIM_ClearITPendingBit(TIM4, TIM_IT_Update);
|
2023-12-11 21:45:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TIM5_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (TIM_GetITStatus(TIM5, TIM_IT_Update) != RESET) {
|
|
|
|
|
|
TIM_ClearITPendingBit(TIM5, TIM_IT_Update);
|
2023-12-11 21:45:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TIM6_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (TIM_GetITStatus(TIM6, TIM_IT_Update) != RESET) {
|
2024-03-04 15:05:40 +08:00
|
|
|
|
// ICM_getEulerianAngles();
|
2024-03-02 16:05:24 +08:00
|
|
|
|
imu660ra_get_gyro();
|
2023-12-13 21:54:20 +08:00
|
|
|
|
TIM_ClearITPendingBit(TIM6, TIM_IT_Update);
|
2023-12-11 21:45:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TIM7_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (TIM_GetITStatus(TIM7, TIM_IT_Update) != RESET) {
|
|
|
|
|
|
TIM_ClearITPendingBit(TIM7, TIM_IT_Update);
|
2023-12-11 21:45:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TIM8_UP_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (TIM_GetITStatus(TIM8, TIM_IT_Update) != RESET) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
TIM_ClearITPendingBit(TIM8, TIM_IT_Update);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TIM9_UP_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (TIM_GetITStatus(TIM9, TIM_IT_Update) != RESET) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
TIM_ClearITPendingBit(TIM9, TIM_IT_Update);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TIM10_UP_IRQHandler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
if (TIM_GetITStatus(TIM10, TIM_IT_Update) != RESET) {
|
2023-12-11 21:45:06 +08:00
|
|
|
|
TIM_ClearITPendingBit(TIM10, TIM_IT_Update);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//.section .text.vector_handler, "ax", @progbits
|
|
|
|
|
|
|
|
|
|
|
|
// .weak EXTI0_IRQHandler /* EXTI Line 0 */
|
|
|
|
|
|
// .weak EXTI1_IRQHandler /* EXTI Line 1 */
|
|
|
|
|
|
// .weak EXTI2_IRQHandler /* EXTI Line 2 */
|
|
|
|
|
|
// .weak EXTI3_IRQHandler /* EXTI Line 3 */
|
|
|
|
|
|
// .weak EXTI4_IRQHandler /* EXTI Line 4 */
|
|
|
|
|
|
// .weak DMA1_Channel1_IRQHandler /* DMA1 Channel 1 */
|
|
|
|
|
|
// .weak DMA1_Channel2_IRQHandler /* DMA1 Channel 2 */
|
|
|
|
|
|
// .weak DMA1_Channel3_IRQHandler /* DMA1 Channel 3 */
|
|
|
|
|
|
// .weak DMA1_Channel4_IRQHandler /* DMA1 Channel 4 */
|
|
|
|
|
|
// .weak DMA1_Channel5_IRQHandler /* DMA1 Channel 5 */
|
|
|
|
|
|
// .weak DMA1_Channel6_IRQHandler /* DMA1 Channel 6 */
|
|
|
|
|
|
// .weak DMA1_Channel7_IRQHandler /* DMA1 Channel 7 */
|
|
|
|
|
|
// .weak ADC1_2_IRQHandler /* ADC1_2 */
|
|
|
|
|
|
// .weak USB_HP_CAN1_TX_IRQHandler /* USB HP and CAN1 TX */
|
|
|
|
|
|
// .weak USB_LP_CAN1_RX0_IRQHandler /* USB LP and CAN1RX0 */
|
|
|
|
|
|
// .weak CAN1_RX1_IRQHandler /* CAN1 RX1 */
|
|
|
|
|
|
// .weak CAN1_SCE_IRQHandler /* CAN1 SCE */
|
|
|
|
|
|
// .weak EXTI9_5_IRQHandler /* EXTI Line 9..5 */
|
|
|
|
|
|
// .weak TIM1_BRK_IRQHandler /* TIM1 Break */
|
|
|
|
|
|
// .weak TIM1_UP_IRQHandler /* TIM1 Update */
|
|
|
|
|
|
// .weak TIM1_TRG_COM_IRQHandler /* TIM1 Trigger and Commutation */
|
|
|
|
|
|
// .weak TIM1_CC_IRQHandler /* TIM1 Capture Compare */
|
|
|
|
|
|
// .weak TIM2_IRQHandler /* TIM2 */
|
|
|
|
|
|
// .weak TIM3_IRQHandler /* TIM3 */
|
|
|
|
|
|
// .weak TIM4_IRQHandler /* TIM4 */
|
|
|
|
|
|
// .weak I2C1_EV_IRQHandler /* I2C1 Event */
|
|
|
|
|
|
// .weak I2C1_ER_IRQHandler /* I2C1 Error */
|
|
|
|
|
|
// .weak I2C2_EV_IRQHandler /* I2C2 Event */
|
|
|
|
|
|
// .weak I2C2_ER_IRQHandler /* I2C2 Error */
|
|
|
|
|
|
// .weak SPI1_IRQHandler /* SPI1 */
|
|
|
|
|
|
// .weak SPI2_IRQHandler /* SPI2 */
|
|
|
|
|
|
// .weak USART1_IRQHandler /* USART1 */
|
|
|
|
|
|
// .weak USART2_IRQHandler /* USART2 */
|
|
|
|
|
|
// .weak USART3_IRQHandler /* USART3 */
|
|
|
|
|
|
// .weak EXTI15_10_IRQHandler /* EXTI Line 15..10 */
|
|
|
|
|
|
// .weak RTCAlarm_IRQHandler /* RTC Alarm through EXTI Line */
|
|
|
|
|
|
// .weak USBWakeUp_IRQHandler /* USB Wakeup from suspend */
|
|
|
|
|
|
// .weak TIM8_BRK_IRQHandler /* TIM8 Break */
|
|
|
|
|
|
// .weak TIM8_UP_IRQHandler /* TIM8 Update */
|
|
|
|
|
|
// .weak TIM8_TRG_COM_IRQHandler /* TIM8 Trigger and Commutation */
|
|
|
|
|
|
// .weak TIM8_CC_IRQHandler /* TIM8 Capture Compare */
|
|
|
|
|
|
// .weak RNG_IRQHandler /* RNG */
|
|
|
|
|
|
// .weak FSMC_IRQHandler /* FSMC */
|
|
|
|
|
|
// .weak SDIO_IRQHandler /* SDIO */
|
|
|
|
|
|
// .weak TIM5_IRQHandler /* TIM5 */
|
|
|
|
|
|
// .weak SPI3_IRQHandler /* SPI3 */
|
|
|
|
|
|
// .weak UART4_IRQHandler /* UART4 */
|
|
|
|
|
|
// .weak UART5_IRQHandler /* UART5 */
|
|
|
|
|
|
// .weak TIM6_IRQHandler /* TIM6 */
|
|
|
|
|
|
// .weak TIM7_IRQHandler /* TIM7 */
|
|
|
|
|
|
// .weak DMA2_Channel1_IRQHandler /* DMA2 Channel 1 */
|
|
|
|
|
|
// .weak DMA2_Channel2_IRQHandler /* DMA2 Channel 2 */
|
|
|
|
|
|
// .weak DMA2_Channel3_IRQHandler /* DMA2 Channel 3 */
|
|
|
|
|
|
// .weak DMA2_Channel4_IRQHandler /* DMA2 Channel 4 */
|
|
|
|
|
|
// .weak DMA2_Channel5_IRQHandler /* DMA2 Channel 5 */
|
|
|
|
|
|
// .weak ETH_IRQHandler /* ETH */
|
|
|
|
|
|
// .weak ETH_WKUP_IRQHandler /* ETH WakeUp */
|
|
|
|
|
|
// .weak CAN2_TX_IRQHandler /* CAN2 TX */
|
|
|
|
|
|
// .weak CAN2_RX0_IRQHandler /* CAN2 RX0 */
|
|
|
|
|
|
// .weak CAN2_RX1_IRQHandler /* CAN2 RX1 */
|
|
|
|
|
|
// .weak CAN2_SCE_IRQHandler /* CAN2 SCE */
|
|
|
|
|
|
// .weak OTG_FS_IRQHandler /* OTGFS */
|
|
|
|
|
|
// .weak USBHSWakeup_IRQHandler /* USBHS Wakeup */
|
|
|
|
|
|
// .weak USBHS_IRQHandler /* USBHS */
|
|
|
|
|
|
// .weak DVP_IRQHandler /* DVP */
|
|
|
|
|
|
// .weak UART6_IRQHandler /* UART6 */
|
|
|
|
|
|
// .weak UART7_IRQHandler /* UART7 */
|
|
|
|
|
|
// .weak UART8_IRQHandler /* UART8 */
|
|
|
|
|
|
// .weak TIM9_BRK_IRQHandler /* TIM9 Break */
|
|
|
|
|
|
// .weak TIM9_UP_IRQHandler /* TIM9 Update */
|
|
|
|
|
|
// .weak TIM9_TRG_COM_IRQHandler /* TIM9 Trigger and Commutation */
|
|
|
|
|
|
// .weak TIM9_CC_IRQHandler /* TIM9 Capture Compare */
|
|
|
|
|
|
// .weak TIM10_BRK_IRQHandler /* TIM10 Break */
|
|
|
|
|
|
// .weak TIM10_UP_IRQHandler /* TIM10 Update */
|
|
|
|
|
|
// .weak TIM10_TRG_COM_IRQHandler /* TIM10 Trigger and Commutation */
|
|
|
|
|
|
// .weak TIM10_CC_IRQHandler /* TIM10 Capture Compare */
|
|
|
|
|
|
// .weak DMA2_Channel6_IRQHandler /* DMA2 Channel 6 */
|
|
|
|
|
|
// .weak DMA2_Channel7_IRQHandler /* DMA2 Channel 7 */
|
|
|
|
|
|
// .weak DMA2_Channel8_IRQHandler /* DMA2 Channel 8 */
|
|
|
|
|
|
// .weak DMA2_Channel9_IRQHandler /* DMA2 Channel 9 */
|
|
|
|
|
|
// .weak DMA2_Channel10_IRQHandler /* DMA2 Channel 10 */
|
|
|
|
|
|
// .weak DMA2_Channel11_IRQHandler /* DMA2 Channel 11 */
|
|
|
|
|
|
|
|
|
|
|
|
/*******************************************************************************
|
2023-12-13 21:54:20 +08:00
|
|
|
|
* Function Name : NMI_Handler
|
|
|
|
|
|
* Description : This function handles NMI exception.
|
|
|
|
|
|
* Input : None
|
|
|
|
|
|
* Return : None
|
|
|
|
|
|
*******************************************************************************/
|
2023-12-11 21:45:06 +08:00
|
|
|
|
void NMI_Handler(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*******************************************************************************
|
2023-12-13 21:54:20 +08:00
|
|
|
|
* Function Name : HardFault_Handler
|
|
|
|
|
|
* Description : This function handles Hard Fault exception.
|
|
|
|
|
|
* Input : None
|
|
|
|
|
|
* Return : None
|
|
|
|
|
|
*******************************************************************************/
|
2023-12-11 21:45:06 +08:00
|
|
|
|
void HardFault_Handler(void)
|
|
|
|
|
|
{
|
2023-12-13 21:54:20 +08:00
|
|
|
|
while (1) {
|
|
|
|
|
|
}
|
2023-12-11 21:45:06 +08:00
|
|
|
|
}
|