STM32f407的ADC采样值出错

STM32f407的ADC采样值出错

   使用STM32f407的ADC遇到一个奇葩的问题。

问题

   STM32f407的ADC在采样的时候,值很大,甚至超过4096(stm32最高位12bit的ADC)。通过调试发现,无论设置了数据左对齐还是右对齐,其结果都是左对齐!!!这才导致了值很大,甚至超过4096。当然可以将这个结果移位来解决,但不是根本办法。
   还是想,这到底为什么?明明配置了数据对齐方式,却没有效果。

问题发现

   一个小时过后…
   两个小时过后…
   一个下午过后…发现,只要:

	CAN1_Mode_Init(CAN_SJW_1tq,CAN_BS2_6tq,CAN_BS1_7tq,3,CAN_Mode_Normal);//CAN初始化环回模式,波特率500Kbps   
	Adc_Init();         //初始化ADC

   初始化CAN后,立即初始化ADC,就会有这个问题。终究不知道是为啥,并且这两个外设也没有共用引脚。

问题解决

   换一下顺序:

	Adc_Init();         //初始化ADC
	CAN1_Mode_Init(CAN_SJW_1tq,CAN_BS2_6tq,CAN_BS1_7tq,3,CAN_Mode_Normal);//CAN初始化环回模式,波特率500Kbps   

   最好还不要连着放在一起。可以尝试:

	Adc_Init();         //初始化ADC
	//其他代码
	CAN1_Mode_Init(CAN_SJW_1tq,CAN_BS2_6tq,CAN_BS1_7tq,3,CAN_Mode_Normal);//CAN初始化环回模式,波特率500Kbps   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cuntou0906

玛莎拉蒂是我的目标!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值