本人的学习记载
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代码