티스토리 뷰
17. TIM DMA
-이번 장은 Timer를 이용하여 DMA Control을 한다
-아래 예제는 1초마다 DMA를 실행하여 데이터를 복사하는 방법이다
Block diagram
Tim1은 APB2 클럭을 받는다
CUBE MX 설정
1초마다 업데이트 되는지 확인을 위해 PG14를 output 설정
Half Word 데이터 하나만 복사할 것이므로 Increment Address 체크를 안 해주었다.
분주비에 의해 1clk = 1ms 이다.
Source Code
/* Private variables ---------------------------------------------------------*/
TIM_HandleTypeDef htim1;
DMA_HandleTypeDef hdma_tim1_up;
/* USER CODE BEGIN PV */
/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/
uint16_t num = 0x4000;
/* USER CODE END PV */
/* USER CODE BEGIN 2 */
__HAL_TIM_ENABLE_DMA(&htim1, TIM_DMA_UPDATE); HAL_DMA_Start(&hdma_tim1_up,(uint32_t)&num,(uint32_t)&GPIOG->ODR,1);
HAL_TIM_Base_Start(&htim1);
/* USER CODE END 2 */
/* USER CODE BEGIN 3 */
if(num == 0x4000)
num = 0x0000;
else
num = 0x4000;
HAL_Delay(990);
GPIOG->ODR은 Output Data Register로 0~15번 비트가 GPIOG PORT0~15번 핀을 각각 담당한다 그러므로 0x4000은 이진수로 아래 표와 같이 표현된다.
PG15 |
PG14 |
PG13 |
PG12 |
PG11 |
PG10 |
PG9 |
PG8 |
PG7 |
PG6 |
PG5 |
PG4 |
PG3 |
PG2 |
PG1 |
PG0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
실행 결과
HAL_Delay에 의해 990ms 마다 num 값이 바뀌는데 1초마다 ODR 값을 업데이트 해주므로 LED가 1초마다 켯다 꺼진다.
num값이 바뀌면서 ODR 값이 1초마다 업데이트 됨을 보여주기 위해 위와 같은 소스코드를 생성하였다.
'STM32Fxx' 카테고리의 다른 글
STM32F429 - SPI DMA (1) | 2018.11.10 |
---|---|
STM32F429 - UART DMA (0) | 2018.11.10 |
STM32F429-DMA IT (Direct Memory Access Interrupt) (0) | 2018.11.08 |
STM32F429 - DMA poll(Direct Memory Access) (0) | 2018.11.04 |
STM32F429 - WWDG(Window Watch Dog) (0) | 2018.11.04 |
- Total
- Today
- Yesterday
- STM32F429 GPIO
- STM GPIO
- vba
- Excel
- STM CUBE MX
- 틀고정
- atmega128 설치
- atmel studio 설치
- GPIO
- STM32F429
- STM 입출력
- 중소기업청년
- 수은건전지
- MCG
- 중기청
- 홈서비스
- filecopy
- Dir
- 정부주택대출
- atmega 설치방법
- STM32F
- CUBE MX GPIO
- 파일복사
- atmega 개발
- STM32F GPIO
- 착한운전자마일리지
- 폴더생성
- atmel studio7
- 제목행
- 전세지킴보증서
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |