목록분류 전체보기 (447)
printf("ho_tari\n");
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..
2025.03.27 오늘의 학습 목표1. 과제 review2. Memory 구조체 access3. Debugger 사용4. RTOS 기반 programming #define PERIPH_BASE 0x40000000UL#define GPIOB_BASE (AHB1PERIPH_BASE + 0x0400UL)#define AHB1PERIPH_BASE (PERIPH_BASE + 0x00020000UL) 0x40000000 + 20000 + 400 → 0x40020400 (GPIOB 시작 주소) typedef struct { __IO uint32_t MODER; /*! __IO uint32_t OTYPER; /*! __IO uint32_t OSPEEDR..
2025.03.26 오늘의 학습 목표1. 과제 review2. LED/BUTTON Control3. HAL function → Direct MemoryAccess 변환4. Debugger 사용법5. ST_LINK Utility 데이터시트 LED CONTROL /* USER CODE BEGIN Header *//** ****************************************************************************** * @file : main.c * @brief : Main program body ************************************************************************..