赞
踩
1.硬件环境
2.软件环境
使用AT-START AT32F403AVGT7 开发板
使用rtthread studio 创建芯片构建
文件—》新建—》rtthread 项目
2.打开adc 组件
3.自动生成adc读取例子
4.使用上述配置 保存自动生成代码并编译后 发现电压不准
5.另外需要打开 BSP_USING_ADC1 这个宏定义 在board.h 中
#ifdef BSP_USING_ADC1
if(ADCx == ADC1)
{
/* ADC1 & GPIO clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_ADC1 | RCC_APB2PERIPH_GPIOA | RCC_APB2PERIPH_GPIOB | RCC_APB2PERIPH_GPIOC,ENABLE);
/* Configure ADC Channel as analog input */
GPIO_StructInit(&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pins = GPIO_Pins_0 | GPIO_Pins_1 | GPIO_Pins_2 | GPIO_Pins_3 | GPIO_Pins_4 | GPIO_Pins_5;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_ANALOG;
GPIO_Init(GPIOC, &GPIO_InitStruct);
}
#endif
上述代码中发现没有对adc 的io 引脚进行 配置
GPIO_Init(GPIOC, &GPIO_InitStruct);
修改为
GPIO_Init(GPIOA, &GPIO_InitStruct);
rtthread studio 生成的是channel 5 对应的引脚为 PA5
rtthread studio 生成代码不能够直接运行,rtthread 只做了简单的时钟和串口的适配,其他驱动需要自己核对msp 级别的代码,所以在使用到其他的外设需要注意一下。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。