Chương trình thực hiện xuất ra giá trị điện áp tương tự(DAC) trên chân PA4. CHương trình sẽ thực hiện quá trình chuyển đổi tương tự số trên chân PA0 và tính toán giá trị điện áp. Để kiểm tra xem quá trình DAC có đúng như mong muốn không, thì ta sẽ nối dây PA0 và chân PA4
Bước 2: Ở mục RCC , High Speed Clock chọn Crystal/Ceramic Resonator để cấu hình cho chip chạy ở thạch anh ngoài
Bước 5: Tạo code trên phần mềm Keil-ARM
Bước 6: Ở hàm main.c, tạo một biến kiểu uint16_t tên adc_value dùng để lưu giá trị adc. Tiếp theo tạo 2 biến float tên theory_voltage dùng để lưu trữ giá trị điện áp theo lí thuyết xuất ra trên DAC và real_voltage tức là điện áp thực tế đo được về bằng ADC. Nếu giá trị 2 biến có giá trị gần bằng nhau tức bài mô phỏng chính xác
Bước 7: Ở hàm while sử dụng đoạn lệnh HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_12B_R, (uint32_t)((theory_voltage/(float)3.0)*(float)4095.0)); HAL_Delay(2000); theory_voltage+=(float)0.20; if(theory_voltage>(float)3.1) { theory_voltage=0; }
Để xuất ra giá trị điện áp trên chân PA4 cách nhau một khoảng 2000ms và chạy cách nhau 0.2 volt nếu giá trị lớn hơn 3.1volt thì quay trở về 0
Bước 8: Viết chương trình phục vụ ngắt ADC
Void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc){ if(hadc->Instance==hadc1.Instance){
adc_value=HAL_ADC_GetValue(&hadc1); real_voltage=(adc_value/4095.0)*3.0; }} để tính giá trị điện áp thực tế
Bước 9: Build & Debug để kiểm tra giá trị thực tế và lí thuyết