분류 전체보기 (137) 썸네일형 리스트형 [ATmega128] LED 1개 점멸 목표 : LED 1번 켜기 / 끄기 #define F_CPU 16000000UL // 16 MHz #include #include int main(void){ DDRA=0x01; // LED while(1){ PORTA=0x01; // LED1 ON _delay_ms(1000); PORTA=0x00; // LED1 OFF _delay_ms(1000); } } [STM32F746] RS-232 1. 정의 - 직렬 통신 방식 중 하나 - 1:1통신(시리얼 통신) = 한 번에 한 비트씩 전송 2. 핀 구성 - 총 9개의 핀으로 구성되어 있음 - RX(Pin2), TX(Pin3), GND(Pin5)만으로 사용하는 경우 많음 - 나머지 핀은 시리얼 통신할 때 하드웨어 컨트롤이 필요한 경우에 사용 3. 주의해야 할 점 - Baud Rate에 따른 케이블의 최대 길이 - 속도가 올라갈 수록 케이블의 길이는 짧아져야 함 [touchGFX] Multi-Language * 목표 : 버튼을 통해 한/영 언어 선택 1. MVP 패턴 구조 2. 인터렉션 생성 3. Add a new language 4. 코드 작성 1) Screen1Presenter.hpp public: void toggleLanguage(); 2) Screen1Presenter.cpp #include #include void Screevoid Screen1Presenter::toggleLanguage() { LanguageId currentLanguage = Texts::getLanguage(); if(currentLanguage == (LANGUAGES::NUMBER_OF_LANGUAGES - 1)) { view.setLanguage(0); } else { view.setLanguage(currentLan.. [stm32F746] PWM * 목표 : PWM 생성하고 100ms마다 PWM 10씩 변화 1. TIM PWM 설정 2. 코드 작성 1) PWM 시작 함수 /* USER CODE BEGIN 2 */ if(HAL_TIM_PWM_Start(&htim12, TIM_CHANNEL_1) != HAL_OK) { Error_Handler(); } /* USER CODE END 2 */ 2) PWM 변화 /* USER CODE BEGIN WHILE */ uint16_t ccr = 0; while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ TIM12->CCR1 = ccr; ccr += 10; if(ccr > TIM12->ARR) ccr = 0; HAL_Delay(100); } /* USER .. [stm32F746] printf 사용 시 추가해야할 코드 #include ------------------------------------- /* USER CODE BEGIN 0 */ #ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') calls __io_putchar() */ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */ /** * @brief Retargets the C library printf function to the U.. [stm32F746] UART + LED control * UART 통신을 통해 '0' -> LED OFF / '1' -> LED ON 1) USART1_IRQHandler() 함수 구현 - stm32f7xx_it.c 파일에 USART1 수신 인터럽트 발생 시 콜백 함수를 호출하고 플래그를 클리어해 주는 코드 작성 void USART1_IRQHandler(void) { /* USER CODE BEGIN USART1_IRQn 0 */ if((__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RXNE) != RESET) && (__HAL_UART_GET_IT_SOURCE(&huart1, UART_IT_RXNE) != RESET)) { HAL_UART_RxCpltCallback(&huart1); // 콜백 함수 호출 __HAL_UART_CLEA.. [stm32F746] UART Echo 프로그램 * 목표 : USART 수신 인터럽트를 이용하여 수신 데이터를 링 버퍼에 저장하고 링 버퍼 데이터를 읽어 송신하는 Echo 1. USART1 인터럽트 설정 - 인터럽트 사용하기 위해 enable 설정 / Call HAL handler 체크 해제 2. 코드 작성 1) 링 버퍼 라이브러리 프로젝트 추가 2) USART1_IRQHandler() 함수 구현 - stm32f7xx_it.c 파일에 USART1 수신 인터럽트 발생 시 콜백 함수를 호출하고 플래그를 클리어해 주는 코드 작성 void USART1_IRQHandler(void) { /* USER CODE BEGIN USART1_IRQn 0 */ if((__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RXNE) != RESET) && .. [stm32F746] 100ms마다 USART1 1byte tx test * 목표 : 타이머를 사용하여 100ms마다 UART1 1byte data(0x1) 송신 1. 코드 작성(main.c) /* USER CODE BEGIN PV */ volatile int gTimerCnt; // Count를 위한 변수 /* USER CODE END PV */ ----------------------------------------------------------------- - 타이머 시작 함수 호출 /* USER CODE BEGIN 2 */ if(HAL_TIM_Base_Start_IT(&htim3) != HAL_OK) { Error_Handler(); } /* USER CODE END 2 */ ---------------------------------------------------.. 이전 1 ··· 13 14 15 16 17 18 다음