STM32F103 (33) 썸네일형 리스트형 10.[stm32f103][hal] 타이머 (1) _ 개요 데이터시트(stm32f103) 1. 타이머 종류는 총 5가지가 있습니다. SysTick Timer 시스템 타이머 hal_delay 가 이걸로 작동하고 있습니다. IWDG,WWDG Independent Watchdog Timer, Window Watchdog Timer Basic Timer 간단한 기능을 하는 내부 타이머 Tim6,7 General purpose timer 범용 타이머 Tim2,3,4,5 Advanced control timer 고급 타이머 (범용타이머+@) Tim1,8 2. STM32Cube 설정 설정하려고 TIM을 여는 순간 영어 + 이상한 용어들로 인해 맨붕... 천천히 살펴보아요~ Slave Mode : 외부 신호에 의해 펄스를 On/Off 시킬때 사용하는 모드에요~기본적으로 Dis.. 9.[stm32f103][hal] RCC_MCO 로 Clock 확인하기 1. RCC 설명 RCC 은 클럭을 컨트롤하는 레지스터입니다. 크게 HSI,HSE,PLL,SYSCLK 등이 있습니다. HSI: 내부에서 제공하는 Clock HSE: 외부에서 제공하는 Clock PLL: Clock을 증폭 SYSCLK: 결과물 LSE : 외부 정교한 클락 (RTC)에 사용됨 이렇게 설명할수 있겠습니다. 2. MCO 설명 arm 에서는 클럭을 외부에서 측정할 수 있게 제공하는 기능이 있습니다. 그것이 MCO (Microcontroller Clock Output) PA8번입니다. PA8번 핀을 통해서 HSI LSE HSE PLL SYSCLK 를 측정할 수 있습니다. 3. 핀설정 4. PLL 없이 HSE로 설정 후 측정하기 5. PLL 설정 후 SYSCLK 측정하기 6. 소스 설정대로만 하면 기.. 8.[stm32f103][hal] 외부 인터럽트 1. 회로도 PC0 : 인터럽트 0 PC1 : 인터럽트 1 PE3 : 출력 PE4 : 출력 테스트를 LED를 항상 켜져 있다가 외부키 가 눌리면 OFF 시키도록 하려고 합니다 2. STM32CUBE 설정 NVIC 쪽 Enabled를 체크해야 아래와 같은 소스가 자동으로 만들어집니다. 이 부분이 인터럽트 처리 함수 입니다. 3. 소스 main.c int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_SET); while (1) { } /* USER CODE END 3 */ }.. 6.[stm32f103][hal] printf 사용하기 1. 소스 #include "main.h" #include "stm32f1xx_hal.h" UART_HandleTypeDef huart1; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART1_UART_Init(void); int fputc(int ch, FILE *f) { uint8_t temp[1]={ch}; HAL_UART_Transmit(&huart1, temp, 1, 2); return(ch); } int main(void) { HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured .. 5.[stm32f103][hal]usart1 polling 1. Cube 설정 2. 소스 #include "main.h" #include "stm32f1xx_hal.h" UART_HandleTypeDef huart1; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART1_UART_Init(void); int main(void) { HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USART1_UART_Init(); HAL_StatusTypeDef R_stat; uint8_t UsartD.. 4.[stm32f103][hal] Fatal error: ST-LINK, No MCU device found 0. 원인 st-link/v2를 써서 디버깅 할떄!!이경우 sys 부분을 설정 하지 않으면 "Fatal error: ST-LINK, No MCU device found" 라는 에러 메세지를 볼수 있을 겁니다.이런 오류가 나는 이유가 디버깅을 하려면 SWDIO,SWCLK pin (PA13,PA14)을 설정해야 작동을 하는데 설정을 안했기 때문입니다. 1. 준비하기 1. 일단 BOOT0 를 1로 만들어서 Boot mode를 System memory를 만든다. 저와 같은 STM32 Dragon 쓰시는 분은 ISP 부분을 삼각형 이랑 가운데를 점퍼로 연결하면 됩니다. 그리고 나서 RESET 버튼을 눌러주세요. 2. 설치하기 http://www.st.com/en/development-tools/flasher-st.. 3.[stm32f103][hal] GPIO 입출력 1. 설명 처음 ARM을 배울때만해도 HAL 이라는 개념이 없이 Struct을 통해서 설정을 일일이 다 했습니다.~ 하지만 HAL 드라이버가 나옴으로써 그럴 필요가 없어지고 간편해진거 같습니다.. HAL 드라이버를 쓰기 위해서는 CUBE를 통해서 다운로드를 자동으로 지원해주고 있어서 너무 편해요~ 2. CUBE 실행 하기 해당하는 MCU를 선택한 다음에 START Project를 누르면 자동으로 다운로드가 시작 됩니다. 저같은 경우는 stm32f103vct6 이라서 stm32f103vctx를 선택했습니다. 3. 입출력 설정하기 이것 같은 경우도 조심해야될게 저같은 경우는 st-link/v2를 써서 디버깅을 합니다. 이경우 sys 부분을 설정 하지 않으면 "Fatal error: ST-LINK, No MC.. 2. [stm32f103] 시작하기-stm32 Dragon 1. 보드 준비 http://www.jkelec.co.kr/product3_1.php 사양 1. MCU - STM32F103VCT6 2. 회로도 이전 1 2 3 4 5 다음