不用空闲中断

This commit is contained in:
ws 2025-07-02 17:48:50 +08:00
parent 57a3838e38
commit b022b46730
8 changed files with 43 additions and 58 deletions

View File

@ -96,3 +96,7 @@
[info] Log at : 2025/7/1|10:57:51|GMT+0800
[info] Log at : 2025/7/2|02:59:15|GMT+0800
[info] Log at : 2025/7/2|17:15:33|GMT+0800

View File

@ -1,10 +1,8 @@
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\keil\ARM\ARMCC\Bin'
Build target 'R1'
compiling shoot.cpp...
compiling ball.cpp...
compiling shootTask.cpp...
linking...
Program Size: Code=32968 RO-data=1832 RW-data=268 ZI-data=32220
Program Size: Code=32904 RO-data=1832 RW-data=268 ZI-data=32220
FromELF: creating hex file...
"R1\R1.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:06
Build Time Elapsed: 00:00:05

View File

@ -1 +1 @@
2025/7/1 14:54:30
2025/7/2 14:06:43

View File

@ -153,47 +153,49 @@
<Name>-U00160029510000164E574E32 -O2254 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>94</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>../Core/Src/main.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>shoot,0x0A</ItemText>
<ItemText>rc_ctrl,0x0A</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>nucData,0x0A</ItemText>
<ItemText>shoot,0x0A</ItemText>
</Ww>
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>nucbuf</ItemText>
<ItemText>ball,0x0A</ItemText>
</Ww>
<Ww>
<count>3</count>
<WinNumber>1</WinNumber>
<ItemText>wzcsb,0x0A</ItemText>
<ItemText>nucbuf</ItemText>
</Ww>
<Ww>
<count>4</count>
<WinNumber>1</WinNumber>
<ItemText>nuc_v</ItemText>
</Ww>
<Ww>
<count>5</count>
<WinNumber>1</WinNumber>
<ItemText>abc,0x0A</ItemText>
</Ww>
<Ww>
<count>6</count>
<WinNumber>1</WinNumber>
<ItemText>shoot_wait,0x0A</ItemText>
</Ww>
<Ww>
<count>7</count>
<WinNumber>1</WinNumber>
<ItemText>error_code</ItemText>
<ItemText>cmd_fromnuc</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow4>
@ -962,7 +964,7 @@
<Group>
<GroupName>User/device</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@ -1054,7 +1056,7 @@
<Group>
<GroupName>User/module</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@ -1086,7 +1088,7 @@
<Group>
<GroupName>User/task</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>

View File

@ -33,22 +33,8 @@ int8_t NUC_Init(NUC_t *nuc)
return DEVICE_OK;
}
// static void NUC_IdleCallback(void) {
// osThreadFlagsSet(thread_alert,SIGNAL_NUC_RAW_REDY);
// }
// int8_t NUC_Init(NUC_t *nuc){
// if(nuc == NULL) return DEVICE_ERR_NULL;
// if((thread_alert = osThreadGetId()) == NULL ) return DEVICE_ERR_NULL;
// BSP_UART_RegisterCallback(BSP_UART_AI,BSP_UART_IDLE_LINE_CB,
// NUC_IdleCallback);
// return DEVICE_OK;
// }
int8_t NUC_StartReceiving(void) {
if (HAL_UARTEx_ReceiveToIdle_DMA(BSP_UART_GetHandle(BSP_UART_AI),
if (HAL_UART_Receive_DMA(BSP_UART_GetHandle(BSP_UART_AI),
(uint8_t *)nucbuf,
sizeof(nucbuf)) == HAL_OK)
return DEVICE_OK;
@ -63,7 +49,7 @@ int8_t NUC_Restart(void) {
bool_t NUC_WaitDmaCplt(void) {
return (osThreadFlagsWait(SIGNAL_NUC_RAW_REDY, osFlagsWaitAll,500) ==
return (osThreadFlagsWait(SIGNAL_NUC_RAW_REDY, osFlagsWaitAll,20) ==
SIGNAL_NUC_RAW_REDY);
}

View File

@ -356,6 +356,7 @@ void Ball::ballHadling(void)
break;
case BALL_FORWARD:
osDelay(300); // 不放太快
HAL_GPIO_WritePin(CLOSE_GPIO_Port, CLOSE_Pin, GPIO_PIN_SET); // 打开气缸爪子
osDelay(5);
HAL_GPIO_WritePin(DOWN_GPIO_Port, DOWN_Pin, GPIO_PIN_SET); // 打开下气缸

View File

@ -162,8 +162,6 @@ void Shoot::rc_mode()
{
is_ready = true;
BSP_Buzzer_Stop();
}
else
{
@ -392,7 +390,6 @@ void Shoot::RemoveError()
#if ONE_CONTROL
void Shoot::shoot_control()
{
@ -440,7 +437,7 @@ void Shoot::shoot_control()
BSP_Buzzer_Stop();
currentState = SHOOT_IDLE;
osThreadFlagsClear(EXTEND_OK);
osThreadFlagsClear(READY_TELL); //蓄力标志位
osThreadFlagsClear(READY_TELL); // 蓄力标志位
shoot_wait = 0;
}
}
@ -484,7 +481,7 @@ void Shoot::shoot_control()
break;
case DOWN1:
if (shoot_thread & EXTEND_OK )
if (shoot_thread & EXTEND_OK)
{
if (shoot_wait == 1)
{
@ -495,7 +492,7 @@ void Shoot::shoot_control()
BSP_Buzzer_Stop();
currentState = SHOOT_IDLE;
osThreadFlagsClear(EXTEND_OK);
osThreadFlagsClear(READY_TELL); //蓄力标志位
osThreadFlagsClear(READY_TELL); // 蓄力标志位
shoot_wait = 0;
}
}

View File

@ -40,9 +40,6 @@ void FunctionBall(void *argument)
ball.ball_control(); // 控制球的动作
// HAL_GPIO_WritePin(CLOSE_GPIO_Port, CLOSE_Pin, GPIO_PIN_SET); // 确保气缸爪子闭合
// HAL_GPIO_WritePin(DOWN_GPIO_Port, DOWN_Pin, GPIO_PIN_SET); // 确保下气缸关闭
// ball.xiaomi.position = aaaa;
// CAN_XiaoMi(1,&ball.xiaomi,&hcan2);