(7)Proteus 8.9上的STM32仿真系列(HAL/CubeMaxIDE)—ADC
**提示:**仿真ADC1的in0无输出数据,烧到板子上能正常运行,目测STM32 的ADC也是不能在Proteus上仿真的,实在有需要可以用其他ADC芯片。
一、电路原理图
1.虽然proteus不能仿真,但还是把原理图摆出来。
二、CubemaxIDE配置
1.时钟和第一节相同,直接HCLK 8Mhz。
2.使能adc1,并如图配置,设置in0,右对齐,通道0和转换时间(可自己选,Cycles值越大越精确)
3.generate code,在main.c中添加如下代码
uint32_t Adc_Value;
uint8_t temp[2];
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_ADC_Start(&hadc1); //开始采样
if(HAL_ADC_PollForConversion(&hadc1, 0xff)==HAL_OK)//确认采样完成
{
//将获取的12位值放入两个字节的数组里
Adc_Value=HAL_ADC_GetValue(&hadc1);
temp[0]=(Adc_Value>>8)&0x00000fff;
temp[1]=Adc_Value&0x00000fff;
//从串口1输出adc值
HAL_UART_Transmit(&huart1, temp, 2, 0xff);
}
HAL_Delay(1000); //延时1000ms
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
4.buidall,生成hex文件
三、实验结果
1.仿真没有输出,烧到板子上的输出如下。每两个字节为一次采样值。前面引脚接地,测量值为0x 00 00。后续接3.3v,输出在0x 0F BE(十进制decimal:4030)附近波动,采样电压为(4030/2^12)*3.3=3.25伏特。
。