介绍了STM32内部AD转换的各种编程方法,包括单通道中断读取、单通道DMA读取、多通道DMA读取、双ADC同步规则、以及芯片温度的检测
单片机源程序如下:
- // ADC 单通道采集
- #include "stm32f10x.h"
- #include "bsp_usart.h"
- #include "bsp_adc.h"
- // ADC1转换的电压值通过MDA方式传到SRAM
- extern __IO uint16_t ADC_ConvertedValue;
- // 局部变量,用于保存转换计算后的电压值
- float ADC_ConvertedValueLocal;
- // 软件延时
- void Delay(__IO uint32_t nCount)
- {
- for(; nCount != 0; nCount--);
- }
- /**
- * @brief 主函数
- * @param 无
- * @retval 无
- */
- int main(void)
- {
- // 配置串口
- USART_Config();
-
- // ADC 初始化
- ADCx_Init();
-
- printf("\r\n ----这是一个ADC单通道DMA读取实验----\r\n");
-
- while (1)
- {
- ADC_ConvertedValueLocal =(float) ADC_ConvertedValue/4096*3.3; // 读取转换的AD值
-
- printf("\r\n The current AD value = 0x%04X \r\n", ADC_ConvertedValue);
- printf("\r\n The current AD value = %f V \r\n",ADC_ConvertedValueLocal);
- Delay(0xffffee);
- }
- }
- /*********************************************END OF FILE**********************/
复制代码
所有代码51hei提供下载:
31-ADC—电压采集.7z
(572.09 KB, 下载次数: 58)
|