stm32 の桶

本人的学习记载

2023.3.24

TIM_InternalClockConfig()选择TIMx来设置内部时钟源;

(时钟源的来源:1、内部时钟,可以分频,比较准确;2、外部脉冲输入;3、其他定时器分频)

TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure TIM_TimeBaseInitTypeDef 是一个结构体,用于初始化定时器的时间基数单元,用于设置定时器的时间频率,时间分辨率和计数模式等。

TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;

TIM_ClockDivision用于设置定时器时钟分频系数,即定时器时钟频率分频后的频率,TIM_CKD_DIV1表示不分频,即定时器时钟频率为原始时钟频率。

TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_CounterMode用于设置定时器的计数模式,TIM_CounterMode_Up表示向上计数模式,即定时器从0开始,递增至TIM_Period设置的值,然后重新从0开始,如此循环。

TIM_TimeBaseInitStructure.TIM_Period = 65535 - 1; TIM_Period用于设置定时器的计数周期,一般情况下,定时器的计数范围是0~TIM_Period-1,当计数器计数到TIM_Period时,将重新计数,65535-1表示定时器的计数范围是0~65534。

计数范围一般是0~TIM_Period-1,不是0~TIM_Period,因此要减1。

因为计数范围是从0开始,而TIM_Period 只是计数的最大值,而不是计数范围的最大值,实际上计数范围是0~TIM_Period-1,所以要减1。

TIM_TimeBaseInitStructure.TIM_Prescaler = 72 - 1;

是TIM定时器分频系数,它决定了TIM的时钟频率。TIM_Prescaler = 72 - 1表示将TIM的时钟频率除以72,使TIM的工作频率降低。预分频系数就是将频率分割 所以-1;

TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;

TIM_RepetitionCounter参数指定TIM重复计数器计数值,当它计数到这个值时,将产生一个更新事件,这样,就可以保证TIM时钟定时的准确性。

设置为0表示不启用重复计数功能,TIM将按下一次更新事件发生的时间间隔一直运行,不会触发重复计数事件。

TIM_ICInitTypeDef TIM_ICInitStruct;

TIM_ICInitStruct.TIM_Channel = TIM_Channel_1;

TIM_ICInitStruct.TIM_ICFilter = 0xF;

TIM_ICInitStruct.TIM_ICPolarity = TIM_ICPolarity_Rising;

TIM_ICInitStruct.TIM_ICPrescaler = TIM_ICPSC_DIV1;   //TIM_ICPSC_DIV1表示不使用预分频

TIM_ICInitStruct.TIM_ICSelection = TIM_ICSelection_DirectTI; 

TIM_ICInit(TIM3,&TIM_ICInitStruct);

TIM_ICInitStruct 是一个TIM_ICInitTypeDef结构体,它包含了TIM3输入捕获的各项配置参数。TIM_Channel_1表示使用TIM3的第1通道,TIM_ICFilter是滤波器的配置,TIM_ICPolarity是极性的配置,TIM_ICPrescaler是预分频的配置,TIM_ICSelection是TIM3的输入捕获的触发模式。

最后,TIM_ICInit函数用于初始化TIM3的输入捕获参数。

AD转换步骤:采样 保持 量化 编码

stm32 ADC的总转换时间: Tconv =   采样时间+12.5     个ADC周期

例如:当ADCCLK=14MHz,采样时间为1.5个ADC周期TcoNv = 1.5 + 12.5 =14个ADC周期 = 1μs

(ADCCLK)

ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。校准期间,在每个电容器上都会计算出-个误差修正码(数字值),这个码用于消除在随后的转换中每个电容器上产生的误差.

建议在每次上电后执行一次校准.

启动校准前,ADC必须处于关电状态超过至少两个ADC时钟周期.

4.21

DMA运转的三个条件:

1.传输计数器不为0

2.触发源有信号

3.DMA使能

4.26

初始化流程

1 开启时钟   打开USART GPIO时钟

2 GPIO初始化  TX配置复用输出 RX配置输入//一般为浮空输入或上拉输入*因为串口波形空闲状                                                                                态是高电平  故不使用下拉输入

3 配置USART

需要接收则加上ITconfig NVIC代码

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值