![[ARM] STM32_버튼 이용 LED 조작](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBjf5v%2FbtsHf9PZf1F%2FrNsDMuOU92COvqkcA3epT1%2Fimg.png)
더보기typedef struct{ volatile unsigned int MODER; volatile unsigned int OTYPER; volatile unsigned int OSPEEDR; volatile unsigned int PUPDR; volatile unsigned int IDR; volatile unsigned int ODR; volatile unsigned int BSRR; volatile unsigned int LCKR; volatile unsigned int AFRL; volatile unsigned int AFRH;}GPIO_TypeDef;#define AHB1_BASE 0x40020000#define RCC_BASE (AHB1_BASE + 0x3800)#define ..
![[ARM] Project : Autonomous Vehicle PPT & PDF](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwdWJX%2FbtsHgmO24Hp%2FD5njSXtgBSNMKXqYOWo7b0%2Fimg.jpg)
Project : Autonomous Vehicle ⦁ 개요 : STM32 ARM Cortex M4를 이용한 자율주행 이동체 개발 ⦁ 기능 1. Auto 모드, Manual 모드 1) Auto 모드 : 초음파 센서로 측정한 거리를 통해 자율 주행 a) 원거리에서는 가장 넓은 공간으로 부드럽게 주행 b) 근거리에서는 동체 제자리 회전 2) Manual 모드 : Bluetooth를 이용한 스마트폰 원격 제어 2. CLCD를 통해 현재 머신의 모드 표시 ⦁ 구현 방법 1. FSM, SW Stack, Object Diagram, Sequence Diagram, Class Diagram 제작 ..
![[ARM] Project : Pedestrian Safety Integrated Control System](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1BNMF%2FbtsH0WAYkHd%2FkyKra079qXph6WGDQ2WTak%2Fimg.png)
Project : Pedestrian Safety Integrated Control System ⦁ 개요 : STM32 ARM Cortex M4를 이용한 보행자 안전 통합 관제 시스템 개발 ⦁ 기능 1. 횡단보도 차량 속도 경고 알림 1) 일정 속도를 초과하면 LED 점등 2. 에스컬레이터 일반인, 노약자 모드(자동 동작, 자동 멈춤, 에너지 절약) 1) 일반인 모드 a) 에스컬레이터 속도 : 빠름 b) 동작 : 보행자가 에스컬레이터 시작 위치를 지나가면 동작을 시작, 끝 위치에 도달하면 동작 종료 c) 일반인은 에스컬레이터를 걸어갈 수도, 가만히 서서갈 수도 있기 때문에 ..
![[ARM] STM32_FreeRTOS, Shared Memory](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTx3sa%2FbtsG2oSZXfI%2FkYDpBI9NddyyFDsMVgkm5K%2Fimg.png)
1. OSProcess = 프로그램Thread = Process 내부에서 동작하는 프로그램Process → Process Direct Access 불가능 ⇒ IPC(Inter Process Communication) 사용 Windows, Linux : 범용 OS ← 8GB 이상임베디드용 OS : 제한된 기능(스케줄링, 메모리 제어) ← 10kB 이하종류 : RTOS, Micrium OS, … OS 필수 기능⇒ 스케줄링프로세스가 실행되는 순서를 결정 FCFS(선착순) : 프로세스는 준비 대기열에 도착한 순서대로 실행. 비선점형 스케줄링 알고리즘우선순위 스케줄링 : 각 프로세스에 우선순위 할당Round Robin(RR) ← 대부분의 OS에서 사용 : 각 프로세스에 실..
![[ARM] STM32_Serial Communication(UART), Queue](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbajLO0%2FbtsG0S1mHVh%2F1NvYsDMUMqvbHivFwKUlak%2Fimg.png)
1. Serial Communication 동기/비동기 통신 방식 핀 다중 통신여부 Slave구분 방법 속도 UART비동기전이중(Full Duplex)TxD, Rxd1:1 통신XCLK이 없어 속도의 제한이 있음I2C동기반이중(Half Duplex)SCL, SDA1:n 통신AddressSPI보다 느림SPI동기전이중(Full Duplex)CLOCK, MOSI, MISO, CS1:n 통신CS(Chip Select)제일 빠름 특징I2C반이중 통신으로 송수신 동시 불가데이터 전송에 Address 송신, ACK bit 수신 프로토콜이 추가되어 속도가 SPI에 비해 느림(100kHz, 400kHz)핀 개수 적음Pull-up 저항 필요SPI속도 가장 빠름 (Mbps)각 Slave별로 CS핀이 필요하여 핀..
![[ARM] STM32_PWM, Driver(Motor)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbr01rA%2FbtsG2nmfPki%2FWlcxdkF7m9Ho5vIhuFbzb1%2Fimg.jpg)
1. PWM Prescaler 설정 : 100-1 → 100MHz / 100 : 1MHzARR(Auto Reload Register)Counter Period 조절하여 주파수 조절 (top 값)1MHz → 1 count = 1us@ ARR=1000-1) 0 ~ 999 count하고 overflow → 1kHzCCR (Channel Compare Register) : Pulse 값 조절하여 duty rate 조절PWM mode : mode 1) CNT CCR → 출력 High(시작 Low)Output compare preload : Enable → CCR 값 변경시 다음 주기부터 변경 적용 / Disable → CCR 값 변경시 바로 적용(오류 가능성 있음)CH Polarity 조절하여 시작을 LOW ..