목록(Telechips) AI 시스템 반도체 SW 개발자 교육/STM32CubeIDE (11)
printf("ho_tari\n");

2025.04.09 오늘의 학습목표1.thread 작성2. mutex / semaphore 작성3. project 수행 Mutex : 공유자원 1개에 하나의 사용자만 사용 가능- 뮤텍스는 화장실이 하나 뿐이 없는 식당과 비슷하다. 화장실을 가기 위해서는 카운터에서 열쇠를 받아 가야 한다. 당신이 화장실을 가려고 하는데 카운터에 키가 있으면 화장실에 사람이 없다는 뜻이고 당신은 그 열쇠를 이용해 화장실에 들어갈 수 있다.- 공유된 자원의 데이터 혹은 임계영역 등에 하나의 process 혹은 thread가 접근하는 것을 막아줌(동기화 대상이 하나)- 임계구역을 가진 스레드들의 실행시간이 서로 겹치지 않고 각각 단독으로 실행(상호배제)되도록 하는 기술 Semaphore 세마포어- 손님이 화징실을 좀 더 쉽게 ..

2025.04.08 오늘의 학습 목표1. step motor 제어2. ext INT & phto TR3. thread & mutex (free RTOS) STEP MOTOR /* * stepmotor.c * * Created on: Apr 8, 2025 * Author: microsoft */#include "stepmotor.h"#include "button.h"// btn0 : idle(stop)// btn1 : FW BW#define IDLE 0#define FORWARD 1#define BACKWARD 2uint8_t stepmotor_state = IDLE;void set_rpm(int rpm);void stepmotor_main(void);int stepmotor_drive(..

2025.04.04 오늘의 학습 목표1. code review2. keypad matrix application3. project 수행 KEYPAD 키 매트릭스- 버튼을 매트릭스 형태로 배치- 적은 수의 입력 핀으로 많은 버튼 입력 검사- LED 매트릭스의 잔상효과와 기본적으로 동일한 방식 사용- LED 매트릭스는 출력, 키 매트릭스는 입력을 위한 방법임에 차이가 있음 키 매트릭스의 회로도 키 매트릭스 열 단위 스캔 풀다운 저항 추가 루프 형성1 루프 형성2 다이오드 추가 - 루프 형성 방지 4x4 키 매트릭스 회로도 키 매트릭스 모듈 키 매트릭스 모듈 연결 회로도 타이머 인터럽트 코드void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){ /*..

2025.04.03 DOTMATRIX 제어- LED를 매트릭스 형태로 배치하여 문자와 기호를 표시할 수 있도록 만들어진 출력 장치- 8x8 크기가 흔히 사용됨- 행과 열 제어를 위해 각각 8개, 총 16개 제어선 필요- 제어 회로 / 칩이 포함된 모듈도 흔히 사용 #include "main.h"extern SPI_HandleTypeDef hspi2;void dotmatrix_main_test();void init_dotmatrix(void);int dotmatrix_main(void);int dotmatrix_main_func(void);uint8_t allon[] = { // allon 문자 정의 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b1111111..

2025.04.02 Piezo Buzzer #include "buzzer.h"#include "button.h"/************************************************************************************************************* 옥타브 및 음계별 주파수표(단위:Hz) 음계 0Oct 1Oct 2Oct 3Oct 4Oct 5Oct 6Oct 7Oct 8Oct 9Oct C 16.3516 32.7032 65.4064 130.8128 261.6256 523.2511 1046.502 2093.005 4186.009 8372.019 C# 17.3239 34.647..

2025.04.01 오늘의 학습 목표1. flash memory handling2. I2C3. D FlipFlop → Shift Register STM32F411RE Flash Programming - 총 8개의 sector로 구성- 플래시 메모리는 쓰기전에 먼저 메모리를 지워야 하는데 지울때 사용하는 단위가 sector단위이다.- 플래시를 지우는 방법은 한번에 칩 전체를 지우거나 sector 하나를 지정해서 지울 수 있다. Flash 메모리 읽기- flash 메모리를 읽는 것은 일반 메모리 RAM을 읽는것과 동일 하게 c언어 포인터를 이용 *(읽고자 하는 주소)- 예) 0x08000000 번지에 저장된 4 byte를 읽고자 할 때uint32_t val = (((uint32_t *) 0x0800000..

2025.03.31 오늘의 학습 목표1. 과제 review2. UART RX Int Enqueue / Dequeue3. Timer INT 포인터- 다른 변수를 가리키는 변수- 다른 변수의 주소를 담는 변수 - *p는 p가 가리키는 것을 의미- something pointed by p is integer type- 변수 p가 어떤 주소 값을 담고 있는데 그 주소를 따라가면 다른 변수가 있고 그 변수는 타입이 정수다.- 일반적인 변수 값을 담는 그릇이 아니라 주소 값을 담는 그릇 포인터 활용- 간접 참조 또는 참조 (Dereferencing, Indirection)- *p = 5; 이면 num에 간접 접근- num = 5; 이면 num에 직접 접근 UART 통신을 이용하여 DS1302에서의 RTC값 보정..

2025.03.28 오늘의 학습 목표1. UART 활성화2. 타이밍 분석 & 데이터시트 보고 코딩하기3. timer INT / I2C RTC(Real Time Clock) DS1302 DS1302의 Address DS1302 Read Data DS1302 Read Operation Principle1. GPIO CE SCK IO를 LOW로 설정2. CE를 HIGH로 설정3. COMMAND BIT를 I/O로 WRITE한다.4. CLK를 1번 UP DOWN을 시킨다. 3번과 4번을 8번 반복하게 한다. 5. I/O PORT INPUT MODE를 1로 바꾼다.6. DATA 1BIT를 읽는다.7. CLK를 UP DOWN 시킨다. 6번과 7번을 7번 반복한다. 8. CE를 HIGH로 설정 DS1302 Write..