Professional Documents
Culture Documents
h"
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
unsigned char var1;
unsigned char arr[] = "Welcome";
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
/**
* @brief USART2 Initialization Function
* @param None
* @retval None
*/
static void MX_USART2_UART_Init(void)
{
/**
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
}
/* USER CODE BEGIN 4 */
void LCD_init(void)
{
LCD(0x38, 0); //2 lines, 5*7 matrix
//LCD(0x0C, 0); //Display on, cursor off
LCD(0x0E, 0); //Display on, cursor blinking
LCD(0x06, 0); //Increment cursor (shift cursor to right)
LCD(0x01, 0); //Clear display screen
LCD(0x80, 0); //Force cursor to beginning ( 1st line)
}
//---------------------------------------------//
// Enable Pulse //
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET);
HAL_Delay(1);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET);
}
if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0) == 0)
{
clm_var = check_clm(GPIO_PIN_0);
return key_arr[clm_var-1];
}
else if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1) == 0)
{
clm_var = check_clm(GPIO_PIN_1);
return key_arr[clm_var+3];
}
else if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2) == 0)
{
clm_var = check_clm(GPIO_PIN_2);
return key_arr[clm_var+7];
}
else if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_4) == 0)
{
clm_var = check_clm(GPIO_PIN_4);
return key_arr[clm_var+11];
}
else
return 16;
}
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8,
GPIO_PIN_RESET); //Set all columns to logic 0 ie connected to GND
return clm;
}
if(key_var != 16)
{
key_arr[pass_var1] = key_var + 48;
LCD('*', 1);
//LCD(key_var + 48, 1);
pass_var1++;
if(pass_var1 == 5)
{
LCD(0xC0, 0);
for(i=0;i<5;i++)
{
if(key_arr[i] != enter_key[i])
{
LCD_str("Re-enter pw");
HAL_Delay(100);
pass_var1 = 0;
break;
}
}
if(i == 5)
{
LCD_str("Welcome!!!!");
stepper_forward(10);
HAL_Delay(100);
stepper_reverse(10);
}
pass_var1 = 0;
LCD(0x01, 0);
LCD(0x80, 0);
LCD_str("Enter password:");
LCD(0xC0, 0);
}
}
}
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void)
{
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
__disable_irq();
while (1)
{
}
/* USER CODE END Error_Handler_Debug */