屏幕和编码器OK

This commit is contained in:
2025-03-23 20:45:23 +08:00
parent 9d910c6770
commit 3f4efa0554
88 changed files with 4812 additions and 13918 deletions
+74 -9
View File
@@ -139,11 +139,11 @@ void SYS_setDo(unsigned char channel,unsigned char value)
default:
case 1:
{
HAL_GPIO_WritePin(DO_1_GPIO_Port,DO_1_Pin,(value != 0)?(GPIO_PIN_SET):(GPIO_PIN_RESET));
//HAL_GPIO_WritePin(DO_1_GPIO_Port,DO_1_Pin,(value != 0)?(GPIO_PIN_SET):(GPIO_PIN_RESET));
}break;
case 2:
{
HAL_GPIO_WritePin(DO_2_GPIO_Port,DO_2_Pin,(value != 0)?(GPIO_PIN_SET):(GPIO_PIN_RESET));
//HAL_GPIO_WritePin(DO_2_GPIO_Port,DO_2_Pin,(value != 0)?(GPIO_PIN_SET):(GPIO_PIN_RESET));
}break;
}
}
@@ -151,19 +151,21 @@ void SYS_setDo(unsigned char channel,unsigned char value)
void SYS_setADCStart(void)
{
HAL_ADCEx_Calibration_Start(&hadc1); //AD校准
//HAL_ADCEx_Calibration_Start(&hadc1); //AD校准
HAL_ADC_Start(&hadc1);
//HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, 50);
//HAL_ADC_PollForConversion(&hadc1, 50);
}
uint16_t SYS_getReg(void)
{
float voltage = -1;
uint16_t adc_value = 0;
/*
//判断ADC是否转换成功
if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1),HAL_ADC_STATE_REG_EOC))
@@ -171,6 +173,7 @@ uint16_t SYS_getReg(void)
adc_value = HAL_ADC_GetValue(&hadc1);
//HAL_ADC_Start(&hadc1);
}
*/
return adc_value;
}
@@ -222,12 +225,12 @@ void LED_setState(LED_CHANNEL_ENUM channel,LED_STATE_ENUM state)
default:
case LED_GREEN:
{
HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,(state)?(GPIO_PIN_RESET):(GPIO_PIN_SET));
//HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,(state)?(GPIO_PIN_RESET):(GPIO_PIN_SET));
}break;
case LED_RED:
{
HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,(state)?(GPIO_PIN_RESET):(GPIO_PIN_SET));
//HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,(state)?(GPIO_PIN_RESET):(GPIO_PIN_SET));
}break;
}
}
@@ -239,12 +242,12 @@ void LED_setToggle(LED_CHANNEL_ENUM channel)
default:
case LED_GREEN:
{
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
//HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
}break;
case LED_RED:
{
HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);
//HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);
}break;
}
}
@@ -902,6 +905,68 @@ void HAL_UART_IdleCpltCallback(UART_HandleTypeDef *huart)
}
//=========================================
/*
顺时针
1 2
A set set
B reset set (这个在变化)
逆时针
A reset set (这个在变化)
B set set
*/
int8_t ec11_count = 0;
GPIO_PinState a_value;
GPIO_PinState b_value;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
static uint8_t step = 0;
static int8_t cw_flag = 0;
if(GPIO_Pin == DI_3_Pin)
{
a_value = HAL_GPIO_ReadPin(DI_3_GPIO_Port, DI_3_Pin);
b_value = HAL_GPIO_ReadPin(DI_4_GPIO_Port, DI_4_Pin);
if((step == 0) && (a_value == GPIO_PIN_RESET))//下降沿
{
step = 0x01;
cw_flag = (b_value == GPIO_PIN_SET)?(1):(-1);
}
if (step && cw_flag)//上升沿
{
if(b_value == GPIO_PIN_RESET)
{
ec11_count--;
}
else if(b_value == GPIO_PIN_SET)
{
ec11_count++;
}
cw_flag = 0;
step = 0;
}
}
else if(GPIO_Pin == DI_2_Pin)
{
ec11_count = 0;
}
}
//=========================================
#define MAIN_PERIOD_MS (20)//50Hz