본문 바로가기

공부/STM32F1

(35)
22.[stm32f103][hal] TFT LCD (구동칩ssd1289) 문자 쓰기 1. 준비하기 http://hnydiy.tistory.com/33?category=786244 stm32CubeMx는 위와 같은 소스에 추가하였습니다. 2. 헤더파일 추가하기 3. 파일 4. 결과
20.[stm32f103][hal] TFT LCD (구동칩ssd1289) background 0. 장비 http://www.devicemart.co.kr/31081 제가 원래 했던 JK 에서 산 드래곤 보드는 TFT가 없어서...ㅠㅠ돌아다니는 데브툴즈에서 나온 보드로 해봤어요~3.2 inch true color TFT LCD touch screen, 240 * 320 pixel, 65k color (16 bit,RGB-565), 4-선 저항식 touch screenMCU: STM32F103VCT6 FLASH 256K,RAM48K, 72Mhz(오버클럭시 120Mhz동작)LCD: TFT COLOR 3.2INCH SSD1289 구동칩사용, HX8347 LCD사용가능외부기억장치: MicroSDTOUCH IC: ADS7846EDS1307 시계칩내장2.0mm 10핀 JTAG 커넥터 내장 ( 2.54mm 2..
19.[stm32f103][hal]USB HID 키보드 1. STM32CubeMX 설정18 편에서 했던 HID 마우스 설정이랑 같습니다.http://hnydiy.tistory.com/31 이렇게 하면 기본적으로 마우스 설정으로 되서 usbd_hid.cusbd_hid.h 위에 2 파일에서 값을 바꿔줘야 합니다. 2. usbd_hid.c Middlewares 에 있는 usbd_hid,c 에서 변경 전 변경 후 __ALIGN_BEGIN static uint8_t HID_MOUSE_ReportDesc[HID_MOUSE_REPORT_DESC_SIZE] __ALIGN_END ={ 0x05, 0x01, 0x09, 0x02, 0xA1, 0x01, 0x09, 0x01, 0xA1, 0x00, 0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00,..
18.[stm32f103][hal]USB HID 마우스 1. STM32CubeMX 설정 PA1 Output 설정한 이유는 제가 쓰는 JK 에서 구매한 Dragonboard 에서의 회로도에서 PA1으로 ON/OFF 하는 기능이 추가 되어 있어서 이걸 High 시켜줘야 USB 가 작동 됩니다. 보통은 그냥 PA11 PA12만 연결하면 됩니다. 이렇게 연결하신 분들은 PA1 설정 안하셔도 됩니다. 2. main.c #include "main.h" #include "stm32f1xx_hal.h" #include "usb_device.h" /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private variables ------------------------------------------------..
16.[stm32f103][hal]lcd -1602(1) 1. 프로젝트 파일 2. Cube 설정 3. 파일 확인하기 위에 첨부파일을 그냥 붙여넣기 하셔도 되는데 만드는 과정은 처음 프로젝트를 만들면 main.h 에 #include "main.h" #include "stm32f1xx_hal.h" 이렇게 있으실겁니다. 이걸 지우고 include.h로 묶어 놨어요~~ 헤더파일 만드는 과정은 4. 소스 해석 lcd_1602.h #ifndef __lcd_1602_H #define __lcd_1602_H #include "include.h" #define LCD_CMD 0 #define LCD_DATA 1 /* * LCD Command Set */ #define CMD_CLR 0X01 #define CMD_HOME 0X02 #define CMD_ENTRY 0x06 #de..
15.[stm32f103][hal] 타이머 (6) _ Timer PWM One Pulse Mode 1. STM32Cube 설정 원펄스 모드 에 대해서 알아볼까 합니다. 원펄스 모드 말 그대로 한번만 펄스를 준다는 말이지요~ 소스랑 결과를 같이 보시면 이해가 빨리 될거 같습니다. TIM8 설정 부분에서 Repetition 부분이 새로 생긴게 보일실겁니다. 이부분이 몇번의 펄스를 주는가 입니다. 2. 소스 int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_TIM8_Init(); /* USER CODE BEGIN 2 */ HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_1); /* USER CODE END 2 */ while (1) { HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_1); H..
14.[stm32f103][hal] 타이머 (5) _ Timer PWM Interrupt 1.stm32Cube 설정 주파수 = 8000000/80/1000 = 100Hz 듀티비 = 100(주파수)/100(설정값) * 10 = 10% 2. 소스 main.c int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_TIM8_Init(); /* USER CODE BEGIN 2 */ HAL_TIM_PWM_Start_IT(&htim8, TIM_CHANNEL_1); /* USER CODE END 2 */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } stm32f1xx_it.c void TIM8_CC_IRQHandler(void..
13.[stm32f103][hal] 타이머 (4) _ Timer PWM 1. stm32cube 설정 시간 계산 T = Counter Period / (APB2 timer clocks / Prescaler) %Counter Period 는 최소 100이상이여야한다. %값은 16비트제한으로 최대 65536 입니다. %정확한 카운터를 위해서는 -1을 해야한다. duty비(%) = 100/(Prescaler / Pulse) 시간 계산은 T = 8000000/8 / 1000 = 1ms 듀티비는 100 이면 10% 입니다. 2. 소스 int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_TIM8_Init(); HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_1); while (1) { } } m..