STM32 常用知识
(2) 后续有空了,我会将我最初的学习笔记发出来(太多了,有22104个字🤦♂️),敬请期待!(1)STM32 常用知识将会持续在此篇文章中更新。留言反馈 ✍️ 您的建议是我们改进的动力。关注更新 🔔 获取更多Keil开发技巧。
·
STM32 常用知识
1、定时器定时中断频率、周期计算
计数器溢出频率:f = CK_PSC / (PSC+1) / (ARR+1)
计数周期: T = (PSC+1) / (ARR+1 ) / CK_PSC
2、ADC采样周期的计算
(1)ADC的范围
- STM32的ADC是12位的,2 ^ 12 = 4096. 所以ADC的范围为: 0 ~ 4095
(2) ADCCLK分频器
RCC_ADCCLKConfig(RCC_PCLK2_Div6); // 6分频,也就是12MHz
- APB2最大时钟72MHz, 通过ADC预分频器(可2、4、6、8分频,对应36M 、18M 、12M、9M)进行分频,得到ADCCLK, ADC逐次比较的过程就是由这个时钟推动的。
- 由于ADCCLK最大14MHz,所以尴尬的是对于ADC预分频器,只能选择6分频和8分频这俩个值,对应频率12M、9M
(3)采样周期
//ADC规则组通道配置: ADC1 通道 序列 采样时间
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5 );
- 采样周期计算公式 :
T = 采样时间 + 12.5个ADC时钟周期 =(multiple +12.5)/ ( 72MHz / clk_div)- 采样时间推导过程:
ADC时钟频率:
ADCCLK = 72MHz / clk_div
ADC时钟周期:T1 = 1 / ADCCLK
ADC采样时间:T = multiple* T1 = multiple/ ( 72MHz / ADCCLK),其中multiple就是倍数的意思 ADC_SampleTime_55Cycles5的含义: 采样阶段持续55.5个ADCCLK时钟周期。- 则
multiple= 55.5, 若clk_div = 6,
那么采样周期 T = (55.5+12.5 ) / ( 72 / 6) = 5.67us
- 则
🎯 使用小贴士
如果本指南对您的开发工作有帮助,欢迎:
点赞收藏 👍 让更多开发者看到
留言反馈 ✍️ 您的建议是我们改进的动力
关注更新 🔔 获取更多Keil开发技巧
✨ 持续更新提示:
(1)STM32 常用知识将会持续在此篇文章中更新
(2) 后续有空了,我会将我最初的学习笔记发出来(太多了,有22104个字🤦♂️),敬请期待!
更多推荐



所有评论(0)