본문 바로가기

공부/STM32F4

4.[stm32f429][hal] DAC 로 삼각파 만들기

반응형

0. 파일

main.c
다운로드

 

.1. STM32CubeMx

 

 

 

2. 주파수 계산법

1. APB1 Timer clocks(MHz)/(Prescaler+1)/(Counter Period+1) = Hz   90000000/1/(2047+1) = 43945.3125 Hz -> T=2.2755555555555555555555555555556e-5 
2. Maximum Triangle Amplitude * 2 * (1번계산 T) = TT = 1023 * 2 * 

2.2755555555555555555555555555556e-5  = 

0.0465f = 21.47 Hz
%%%삼각파의 크기는 DAC Configuration 에서 Maximum Triangle Amplitude 를 조정하면 됨

 

3. Main.c

 
int main(void)
{
 
  /* USER CODE BEGIN 1 */
 
  /* USER CODE END 1 */
 
  /* MCU Configuration----------------------------------------------------------*/
 
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
 
  /* USER CODE BEGIN Init */
 
  /* USER CODE END Init */
 
  /* Configure the system clock */
  SystemClock_Config();
 
  /* USER CODE BEGIN SysInit */
 
  /* USER CODE END SysInit */
 
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  MX_DAC_Init();
  MX_TIM6_Init();
 
  /* USER CODE BEGIN 2 */
  HAL_TIM_Base_Start(&htim6);
  HAL_DAC_Start(&hdac,DAC_CHANNEL_1);
  HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_12B_R,0x800);
  /* USER CODE END 2 */
 
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  /* USER CODE END WHILE */
 
  /* USER CODE BEGIN 3 */
  
  }
  /* USER CODE END 3 */
 
}

HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_12B_R,0x800); 

DAC_ALIGN_12B_R

12bit 입니다.

DAC_ALIGN_8B_R

이렇게 하면 8bit 이겠지요~

12bit 라면 0~4095 

8bit라면 0~255

 

이곳의 0x800 에 값을 넣으면 값을 바꿀수 있습니다.~

 

4. 결과

 

 

반응형

'공부 > STM32F4' 카테고리의 다른 글

6.[stm32f429] 74hc245 테스트  (0) 2018.06.14
5.[stm32f429] HID USB Host - Mouse  (1) 2018.06.08
3.[stm32f429][hal] USART1_인터럽트  (1) 2018.03.07
2.[stm32f429][hal] USART1_Polling  (0) 2018.03.05
1.[stm32f429][hal] GPIO 인터럽트  (2) 2018.03.02