[Harman 세미콘 아카데미] 50일차 - 자율 주행 RC Car Project(UART, Motor, PWM, BlueTooth)
[개요] 그동안 배웠던 내용을 바탕으로 자율 주행 커넥티드카를 직접 만들어보는 프로젝트를 시작했다. 실제 과정은 11월부터이지만, 진도가 빠른 관계로 도입부만 미리 맛보기로 했다. [UART] 📌 Coding /* USER CODE BEGIN PFP */ int __io_putchar(int ch) // 출력 함수 { HAL_UART_Transmit(&huart2, &ch, 1, 50); return ch; } int __io_getchar(void) // 입력 함수 { int ch; while(1) { if(HAL_UART_Receive(&huart2, &ch, 1, 50) == HAL_OK) // 받을 때까지 기다렸다가 break; // 잘 받아지면, break; } HAL_UART_Transmit(..
2023. 9. 5.
[Harman 세미콘 아카데미] 48일차 - ARM 및 RTOS 활용(RTOS, UART_rx, UART의 여러 가지 방식)
[RTOS 기본 개념] 아래 링크 참조 RTOS의 개념 임베디드 시스템의 핵심 기술, RTOS란? (기본 개념 및 특징, FreeRTOS, OSEK/VDX, 용어 정리-Task, Deadline [OS - Operating System] OS란? Operating System의 약자로, 운영체제라고 부르기도 한다. 응용프로그램이 요청하는 시스템 자원을 효율적으로 분배하고 관리하는 기능을 하며, 사용자가 컴퓨터를 편리하고 rangvest.tistory.com Firmware : 임베디드 하드웨어를 동작시키며 특정 기능의 수행을 목표로 하는 프로그램 유저의 개입이 거의 없다는 의미로 봐도 무방하다. 하드웨어에 기본적으로 내장된, 전원이 꺼지더라도 다시 전원이 공급되면 저장된 내용이 실행 가능하도록 하는 소프..
2023. 9. 1.
[Harman 세미콘 아카데미] 47일차 - ARM 및 RTOS 활용(Interrupt, DMA, PWM)
[Interrupt] void JoyStick(int op) { HAL_ADC_Start(&hadc1); HAL_ADC_PollForConversion(&hadc1, 100); xVal = HAL_ADC_GetValue(&hadc1); HAL_ADC_PollForConversion(&hadc1, 100); yVal = HAL_ADC_GetValue(&hadc1); HAL_ADC_Stop(&hadc1); zVal = !(HAL_GPIO_ReadPin(z_Value_GPIO_Port, z_Value_Pin)); if(op)printf("x : %5d, y : %5d, z : %d \r\n", xVal, yVal, zVal); } 우리가 만든 JoyStick 함수는 소프트웨어 컨버젼 방식이기 때문에, 함수를 ..
2023. 8. 31.