屏幕和编码器OK
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user