我想用proteus仿真stm32的ADC功能(中断),但是之前解决的串口问题又来了,什么也不显示。之前还有一个问题是,显示的时候只显示整数,电压值是分数的统统不显示,百思不得其解,向各位大佬求助
单通道(中断读取).zip
(402.67 KB, 下载次数: 104)
单片机源程序如下:
- #include "stm32f10x.h"
- #include "bsp_usart.h"
- #include "bsp_adc.h"
- #include "bsp_rccclkconfig.h"
- 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)
- {
- //HSE_SetSysClk( RCC_PLLMul_9 );
- HSI_SetSysClk( RCC_PLLMul_14 );
-
- MCO_GPIO_Config();
- RCC_MCOConfig(RCC_MCO_SYSCLK);
- // 配置串口
- USART_Config();
-
- // ADC 初始化
- ADCx_Init();
-
- printf("\r\n ----这是一个ADC单通道中断读取实验----\r\n");
-
- while (1)
- {
- ADC_ConvertedValueLocal =(float) ADC_ConvertedValue/4096*3.3;
-
- 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);
- printf("\r\n\r\n");
- Delay(10000);
- }
- }
- /*********************************************END OF FILE**********************/
复制代码
|