STM32L432KC: Why is the output of the DAC looking like this?
I found the problem. The problem was aliasing. I had a sprintf function. That was causing the overhead. Thats crazy. the clock is at 4mHz, ADC clock was at 266kHz I was alising around 3kHz does the sprintf really have that much of an over head? 

Using a 

ADC Clocked @ 266kHz 

System Clocked @ 4mHz

/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : main.c
  * @brief          : Main program body
  ******************************************************************************
  * @attention
  *
  * &lt;h2&gt;&lt;center&gt;&amp;copy; Copyright (c) 2020 STMicroelectronics.
  * All rights reserved.&lt;/center&gt;&lt;/h2&gt;
  *
  * This software component is licensed by ST under BSD 3-Clause license,
  * the "License"; You may not use this file except in compliance with the
  * License. You may obtain a copy of the License at:
  *                        opensource.org/licenses/BSD-3-Clause
  *
  ******************************************************************************
  */
/* USER CODE END Header */

/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include &lt;string.h&gt;
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include "custom.h"
char buffer[20];
short adcValue = 0;

void DMA2_Channel3_IRQHandler(void){

    if (((DMA2-&gt;ISR) &amp; (1&lt;&lt;9)) != 0){
        DAC1-&gt;DHR12R1 = adcValue;
        //printADC(adcValue); // Causing the problem
    }

}


int main(void)
{

    //initDebug();
    initADC();
    initDAC();
    initInterrupt();

  while (1)
  {


  }


}


void printADC(int adcValue){

    sprintf(buffer, "ADC VALUE: [%d]\n\r", adcValue);
}

void initDebug(){

    RCC-&gt;APB1ENR1 |= (1&lt;&lt;17); // Enable USART2 Clock
    RCC-&gt;AHB1ENR |= (1&lt;&lt;0); // Enable DMA1 Clock
    RCC-&gt;AHB2ENR |= (1&lt;&lt;0); //Enable GPIOA Clock
    RCC-&gt;CCIPR = (1&lt;&lt;2); //Use the System Clock for USART2

    GPIOA-&gt;MODER &amp;= ~(1&lt;&lt;4); //Enable Alt Function for PA_2
    GPIOA-&gt;MODER |= (1&lt;&lt;5);
    GPIOA-&gt;AFR[0] |= ((1&lt;&lt;10) | (1&lt;&lt;9) | (1&lt;&lt;8)); //Enable USART2_Tx for PA_2

    USART2-&gt;CR1 |= (1&lt;&lt;3); //Enable Transmitter
    USART2-&gt;CR3 |= (1&lt;&lt;7); //Enable DMA Transmission
    USART2-&gt;BRR = 0x1A0; //9600 baudrate

    DMA1_Channel7-&gt;CCR |= (1&lt;&lt;13); //Prio Level High
    DMA1_Channel7-&gt;CCR |= (1&lt;&lt;7); //MINC
    DMA1_Channel7-&gt;CCR |= (1&lt;&lt;5); //Circ
    DMA1_Channel7-&gt;CCR |= (1&lt;&lt;4); //DIR
    DMA1_Channel7-&gt;CNDTR = 20;
    DMA1_Channel7-&gt;CMAR = (uint32_t)buffer;
    DMA1_Channel7-&gt;CPAR = (uint32_t)&amp;USART2-&gt;TDR;
    DMA1_CSELR-&gt;CSELR = (1&lt;&lt;25);

    DMA1_Channel7-&gt;CCR |= (1&lt;&lt;0);
    USART2-&gt;CR1 |= (1&lt;&lt;0); //Enable USART2
}

void initADC(){

    RCC-&gt;AHB2ENR |= ((1&lt;&lt;0) | (1&lt;&lt;13)); //Enable GPIOA Clock &amp; ADC Clock
    RCC-&gt;AHB1ENR |= (1&lt;&lt;1); //Enable DMA2 Clock
    RCC-&gt;CCIPR |= ((1&lt;&lt;29) | (1&lt;&lt;28)); //Uses System Clock for ADC

    GPIOA-&gt;MODER |= ((1&lt;&lt;15) | (1&lt;&lt;14)); //Enable Analog Mode for PA_7

    DMA2_Channel3-&gt;CCR |= ((1&lt;&lt;13) | (1&lt;&lt;12)); //Prio = Very High
    DMA2_Channel3-&gt;CCR |= (1&lt;&lt;10); //16 Bit Memory Size (Can't do 12)
    DMA2_Channel3-&gt;CCR |= (1&lt;&lt;8); //16 Bit Peripheral Size (Cant do 12)
    DMA2_Channel3-&gt;CCR |= (1&lt;&lt;5); //Enable Circ mode
    DMA2_Channel3-&gt;CCR |= (1&lt;&lt;1); //Enable TCE
    DMA2_Channel3-&gt;CNDTR = 0x01; //Counter
    DMA2_Channel3-&gt;CMAR = (uint32_t)&amp;adcValue;
    DMA2_Channel3-&gt;CPAR = (uint32_t)&amp;ADC1-&gt;DR;

    ADC1-&gt;CR &amp;= ~(1&lt;&lt;29); //Disable Deep power ode
    ADC1-&gt;CR |= (1&lt;&lt;28); //Enable Voltage Regulator
    ADC1-&gt;CFGR |= (1&lt;&lt;13); //Enable Continuous
    ADC1-&gt;CFGR |= (1&lt;&lt;1); //Enable DMA Circular Mode
    ADC1-&gt;CFGR |= (1&lt;&lt;0); // Enable DMA
    ADC1-&gt;CR |= (1&lt;&lt;31); //Start Calbi
    while(((ADC1-&gt;CR) &amp; (1&lt;&lt;31)) != 0); //Wait for Calbi to be done
    ADC1-&gt;SQR1 |= ((1&lt;&lt;9) | (1&lt;&lt;8)); //First Seq: Channel 12
    ADC1-&gt;CR |= (1&lt;&lt;0); //Enable ADC
    while(((ADC1-&gt;ISR) &amp; (1&lt;&lt;0)) == 0); //Wait for the ADC to be ready
    ADC1-&gt;ISR |= (1&lt;&lt;0); //Clear the ARDYFlAG

    DMA2_Channel3-&gt;CCR |= (1&lt;&lt;0); //Enable DMA2
    ADC1-&gt;CR |= (1&lt;&lt;2); //ADSTART
}

void initDAC(){

    RCC-&gt;APB1ENR1 |= (1&lt;&lt;29); // Enable Dac
    RCC-&gt;AHB2ENR |= (1&lt;&lt;0);
    GPIOA-&gt;MODER |= ((1&lt;&lt;9) | (1&lt;&lt;8));
    DAC1-&gt;CR |= (1&lt;&lt;0);

}

void initInterrupt(){

    NVIC_EnableIRQ(DMA2_Channel3_IRQn);
    NVIC_SetPriority(DMA2_Channel3_IRQn,0);
}