stm32寄存器版学习笔记07 ADC
2016-07-12 22:52
232 查看
STM32F103RCT有3个ADC,12位主逼近型模拟数字转换器,有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。
1.通道选择
stm32把ADC转换分成2个通道组:规则通道组相当于正常运行的程序;注入通道组相当于中断。程序初始化阶段设置好不同的转换组,系统运行中不用变更循环转换的配置,从而达到任务互不干扰和快速切换。
有16个多路通道。可以把转换组织成两组:规则组和注入组。在任意多个通道上以任意顺序进行的一系列转换构成成组转换。例如,可以如下顺序完成转换:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。
● 规则组由多达16个转换组成。规则通道和它们的转换顺序在ADC_SQRx寄存器中选择。
规则组中转换的总数应写入ADC_SQR1寄存器的L[3:0]位中。
● 注入组由多达4个转换组成。注入通道和它们的转换顺序在ADC_JSQR寄存器中选择。 注入组里的转换总数目应写入ADC_JSQR寄存器的L[1:0]位中。
如果ADC_SQRx或ADC_JSQR寄存器在转换期间被更改,当前的转换被清除,一个新的启动脉冲将发送到ADC以转换新选择的组。
2.ADC1通道0来采样外部电压值 配置步骤
①开启PA口时钟,设置PA0为模拟输入。
main.c
1.通道选择
stm32把ADC转换分成2个通道组:规则通道组相当于正常运行的程序;注入通道组相当于中断。程序初始化阶段设置好不同的转换组,系统运行中不用变更循环转换的配置,从而达到任务互不干扰和快速切换。
有16个多路通道。可以把转换组织成两组:规则组和注入组。在任意多个通道上以任意顺序进行的一系列转换构成成组转换。例如,可以如下顺序完成转换:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。
● 规则组由多达16个转换组成。规则通道和它们的转换顺序在ADC_SQRx寄存器中选择。
规则组中转换的总数应写入ADC_SQR1寄存器的L[3:0]位中。
● 注入组由多达4个转换组成。注入通道和它们的转换顺序在ADC_JSQR寄存器中选择。 注入组里的转换总数目应写入ADC_JSQR寄存器的L[1:0]位中。
如果ADC_SQRx或ADC_JSQR寄存器在转换期间被更改,当前的转换被清除,一个新的启动脉冲将发送到ADC以转换新选择的组。
2.ADC1通道0来采样外部电压值 配置步骤
①开启PA口时钟,设置PA0为模拟输入。
int main(void) { u16 adcx; float temp; Stm32_Clock_Init(9); //系统时钟设置 uart_init(72,9600); //串口初始化为9600 delay_init(72); //延时初始化 LCD_Init(); //初始化LCD Adc_Init_Ch0(); //ADC初始化 POINT_COLOR=RED;//设置字体为红色 //显示提示信息 POINT_COLOR=BLUE;//设置字体为蓝色 LCD_ShowString(60,130,200,16,16,"ADC_CH0_VAL:"); LCD_ShowString(60,150,200,16,16,"ADC_CH0_VOL:0.000V"); while(1) { adcx=Get_Adc_Average(0,10); LCD_ShowxNum(156,130,adcx,4,16,0);//显示ADC的值 temp=(float)adcx*(3.3/4096); //4096为2的12次方 stm32内部ADC是12位的 adcx=temp; LCD_ShowxNum(156,150,adcx,1,16,0);//显示电压值 temp-=adcx; temp*=1000; LCD_ShowxNum(172,150,temp,3,16,0X80); LED0=!LED0; delay_ms(250); } }
main.c
相关文章推荐
- git merge命令
- CentOS正确关机方法
- ECSHOP如何解决Deprecated: preg_replace()报错
- 更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支
- 优雅编程之这样取名字,你就"正常"了!
- 理解Angular中的$apply()以及$digest()
- Hive JDBC运行连接注意事项
- 【Qt】2.1 创建对话框
- Linux MySQL
- 图解Linux命令之--more命令
- 重启Tomcat后还是登录状态
- Android 设置dialog背景全透明无边框
- Oracle练习题
- java的pattern类和matcher类的使用详解
- java的pattern类和matcher类的使用详解
- java的pattern类和matcher类的使用详解
- Ubuntu12.04升级C++11标准
- 网站运营新手疑问:我该不该辞职?
- 网站运营新手疑问:我该不该辞职?
- BZOJ1016 [JSOI2008]最小生成树计数