전체 글 268

리눅스 명령어

안녕하세요. 오늘은 리눅스에서 사용하는 명령어를 알아보겠습니다 1.디렉토리 내용 출력하기 ls (list) 디렉토리에 있는 내용을 출력해줍니다 ls -l 파일을 자세히 보여줍니다 ls -t 수정시간 최신순으로 보여줍니다 ls -rt 수정시간 느린순으로 보여줍니다 ls -r : 파일을 알파벳 역순으로 출력해줍니다 ls -S : 파일의 크기가 큰거부터 출력해줍니다 2.디렉토리 이동하기 cd(change directory) 디렉토리를 이용할때 사용하는 명령어입니다. ls로 현재디렉토리의 폴더명을 확인하고 cd로 디렉토리를 이동하면 됩니다 cd : 자신의 홈 디렉토리로 이동하기 cd / 최상위 디렉토리로 이동하기 cd . 현재 디렉토리로 이동하기 cd .. 상위 디렉토리로 이동하기 cd - 이동하기직전의 디렉토..

STM32 GPIO제어하기OUTPUT_3편(MX_GPIO_Init함수 분석)

안녕하세요. 오늘은 NUCLEO-F103RB 보드로 HAL라이브러리를 사용하여 GPIO OUTPUT를 제어해보겠습니다. 3편에서는 OUTPUT을 설정할때 사용하는 코드를 분석해보겠습니다 우선 GPIO의 설정을 하는 MX_GPIO_Init(); 함수입니다 static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO pin Output Level..

STM32/이론 2023.10.22

MCU-Open drain 알아보기

안녕하세요. 오늘은 Open drain에 대해 알아보겠습니다. Open drain을 알아보기전에 먼저 push pull을 알고있어야 합니다. Push pull? Open drain은 push-pull에서 P-MOS를 사용하지않고 N-MOS만 사용합니다. GPIO OUTPIN BIT가 LOW면 GPIO OUTPUT PIN에 그라운드가 연결됩니다. GPIO OUTPUT BIT가 HIGH면 GPIO OUTPIN이 High impedance상태가 됩니다. (플러팅) GPIO OUTPUT PIN에는 주로 풀업저항을 연결해서 사용합니다. 위와같은 방법으로 사용하면 외부전원을 사용할수 있게됩니다. 이러한 방법을 사용하는곳중에 가장 대표적인게 I2C통신 입니다. I2C통신에서는 한개의 SDA랑 SCL라인을 가지고 다양..

MCU지식 2023.10.15

STM32 GPIO제어하기OUTPUT_2편(컨피규레이션 설정)

안녕하세요. 오늘은 NUCLEO-F103RB 보드로 HAL라이브러리를 사용하여 GPIO OUTPUT를 제어해보겠습니다. 1편에서 사용방법을 간단하게 확인해봤었고 2편에서는 자세히 알아보겠습니다 사용 보드: NUCLEO-F103RB 개발환경 : STM32CubeIDE 1편에서 설정했던 PA5를 GPIO_Output으로 설정했었고 PA5의 컨피규레이션 옵션을 알아보겠습니다 *GPIO output level GPIO의 초기상태를 Low로 할지 High로 할지 선택하는 옵션입니다. 선택하는 옵션에 따라서 아래의 코드가 변합니다 MX_GPIO_Init함수는 처음 프로젝트를 만들면 호출하는 함수이고 GPIO를 세팅하는 코드들이 모여있는 함수입니다. *GPIO mode GPIO의 모드를 Push pull/Open d..

STM32/이론 2023.10.14

STM32 GPIO제어하기 OTUPUT_1편(LED깜빡이기)

안녕하세요. 오늘은 NUCLEO-F103RB 보드로 HAL라이브러리를 사용하여 GPIO WRITE를 제어해보겠습니다. 1편에서는 사용방법만 간단하게 확인해보고 2편에서는 자세히 알아보겠습니다. 사용 보드: NUCLEO-F103RB 개발환경 : STM32CubeIDE NUCLEO-F103RB 보드에는 LED가 기본적으로 달려있어서 달려있는 LED를 사용하면 편리합니다. 빨강 네모에 있는 LD2를 사용하면 됩니다. 그리고 LD2는 초록색이고 PA5에 연결되어 있습니다. stm32cubeIDE에는 코드제너레이터가 있으므로 매우 편리합니다 0번부터 3번까지 진행하여 PA5핀을 출력설정해줍니다. 그리고나서 저장을 누르면 코드가 자동으로 생성됩니다. 이제 main.c에 가서 코드를 작성합니다 HAL라이브러리를 사용..

STM32/이론 2023.10.02

Win32 파일입출력

안녕하세요. 오늘은 Win32로 파일입출력을 해보겠습니다 파일입출력을 할때 함수 4개만 사용하면 됩니다. 파일을 프로그램과 연결하는 CreateFile, 파일을 읽는 ReadFile, 파일을 쓰는 WriteFile, 파일을 닫는 CloseHandle 이렇게 4가지입니다. * CreateFile 함수 HANDLE CreateFile( [in] LPCSTR lpFileName, [in] DWORD dwDesiredAccess, [in] DWORD dwShareMode, [in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes, [in] DWORD dwCreationDisposition, [in] DWORD dwFlagsAndAttributes, [in, opti..

Win32 문자집합 설정

안녕하세요. 오늘은 Win32 유니코드에 대해 알아보겠습니다 문자열을 저장할때 일반적으로 char s[] = "wowon"을 저장하면 아래처럼 공간이 할당됩니다 1바이트에 영문자 1개가 저장됩니다. 한글을 저장할때 2byte를 사용하고 영문자를 저장할때 1byte가 저장된다고 해보겠습니다(UTF-16) 두가지 방식으로 "원원 won"을 저장해보겠습니다 멀티 바이트 문자 집합(MBCS) 한글은 2byte, 영문자는 1byte로 저장됩니다 유니코드 문자 집합 한글이던 영문자던 2byte로 저장됩니다. c언어에서 유니코드를 위한 자료형이 있습니다. wchar_t이고 크기는 2바이트입니다. 멀티 바이트의 장점은 낭비되는 공간이 없습니다. 단점은 글자의 개수와 공간의 크기가 일치하지 않는 것입니다. 유니코드의 장..

아스키코드,EUC-KR,유니코드,UTF-8알아보기

안녕하세요. 오늘은 컴퓨터가 문자를 표현하는 방법에 대해 알아보겠습니다. 사람이 사용하는 문자를 컴퓨터는 0과 1의 조합으로 변환해서 인식합니다. 이런 과정을 인코딩이라고 부릅니다. [문자 => 0,1] 로 변환 : 인코딩 [0,1 => 문자] 로 변환 : 디코딩 인코딩에는 다양한 방법이 있습니다. 1. 아스키코드(ASCII CODE) 아스키코드는 7비트로 이루어져있고 총 128개까지 표현이 가능합니다. 아스키 테이블입니다. 0~31번까지는 제어문자입니다. 예를들어 0번은 NULL이고 10번은 Line Feed입니다. 일반적으로 C언에어서 아스키코드 사용이 가능합니다. 아스키테이블을 보면 A는 65입니다 #include int main() { char c = 'A'; char c2 = 65; printf..

테라텀(Tera term) 매크로 알아보기

안녕하세요 오늘은 테라텀(Tera term) 매크로에 대해 알아보겠습니다. 시리얼통신을 사용할때 매크로를 사용하면 손쉽게 커맨드를 전달할 수도있고 맞나 판단 할 수도있습니다. 테라텀의 매크로는 TTL 확장자를 사용하고 Tera Term Language의 줄임말입니다. 테라텀에서 하는 명령어 입력/출력/판단을 자동으로 매크로를 만들어서 사용할 수 있습니다. 테라텀 매크로의 커맨드들은 아래의 사이트에 자세히 나와있습니다. 커맨드들 중에서 자주 사용하는 커맨드를 알아보겠습니다. 자세한 사항과 다른 기능들은 아래의 사이트에서 찾아서 사용하면 됩니다. https://ttssh2.osdn.jp/manual/4/en/macro/command/ UART로 테스트하고 RX랑 TX를 연결해서 보내고 바로 받게 했습니다. ..

뽑기 슬라임LED 알아보기

안녕하세요. 오늘은 문방구같은곳 앞에서 뽑을수 있는 슬라임LED에 대해 알아보겠습니다. 가격은 1,000원이였고 다양한 LED장난감 디자인에 100%나오는 뽑기였습니다. 아래와 같이 LED가 깜빡입니다. * 구성품 부품은 단순하게 1.5V/30mAh 배터리3개 , LED, 스위치, 케이스가 있습니다. * 사용시간 전원의 크기는 4.5V/30mAh입니다. 전원 4.5V에서 소비전류를 측정해 보니 대략 10mA정도 나옵니다. 그럼 대략 3시간정도 사용 가능합니다. (사용하면서 배터리전압이 낮아짐에따라 소비전류가 변하는 건 고려하지 않았습니다) * LED 점멸 일반적으로 LED에 전원을 유지하면 위의 LED와 다르게 깜빡이지 않고 특정한 색으로 켜져 있습니다. 그러나 위와 같이 전원을 넣으면 색이 변하는 LE..

회로이론/활용 2023.05.01