
利用TIM产生定时信号,使用起来比较简单,只要完成TIMx的配置,计算好定时时间,就可以使用了,剩余的工作就是应用它了。这里我应用了TIMx中断方式,在其中断服务函数里面添加了LED的翻转语句,这样就可以实现按照TIMx的定时时长来点亮熄灭LED了。由于实验较简单,就不上图上视频了,仅将TIMx的配置函数与中断服务函数贴出来。
/*-----------------------------------------------------------------------
tim2 配置
定时时间T计算公式:
*T=(TIM_Period+1)*(TIM_Prescaler+1)/TIMxCLK=(1999+1)*(35999+1)/72MHz=1s
--------------------------------------------------------------------*/
void TIME_Config(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_DeInit(TIM2); //复位定时器
TIM_TimeBaseStructure.TIM_Period=1999; //定时器初始值
TIM_TimeBaseStructure.TIM_Prescaler=35999; //时钟预分频
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; // 时钟分割
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure); //初始化定时器的值
TIM_ClearFlag(TIM2,TIM_FLAG_Update); //清除定时器中断标志
TIM_ARRPreloadConfig(TIM2, DISABLE); //禁止预装载,预装载寄存器的内容被立即传送到影子寄存器
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); //使能中断
TIM_Cmd(TIM2,ENABLE); //开启时钟
}
void TIM2_IRQHandler(void)//定时器中断函数
{//判断是否定时中断
if ( TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET )
{
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);//必须清除中断标志位否则一直中断
count++;
if(count%2 == 0)
GPIO_SetBits(GPIOE ,GPIO_Pin_3);
else
GPIO_ResetBits(GPIOE ,GPIO_Pin_3);
}
}

CRC循环冗余实验是利用STM32内部的CRC校验电路对数组中数进行CRC校验。然后将CRC校验码通过USART1(PA9,PA10)在串口助手上显示出来。
关于代码部分就很简单了,CRC配置部分,只需要打开CRC的时钟就可以了。
void CRC_Config(void)
{
/* Enable CRC clock */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);
}
主函数部分,就是将数组中的数据送给CRC就可以了
int main(void)
{
u8 i = 0;
/* config the sysclock to 72M */
RCC_Configuration();
/* USART1 config */
USART1_Config();
/* 使能CRC时钟 */
CRC_Config();
printf("\r\n 这是一个 CRC(循环冗余校验)实验 \r\n");
/* Compute the CRC of "DataBuffer" */
for(i=0; i<BUFFER_SIZE; i++ )
{
CRCValue = CRC_CalcBlockCRC((uint32_t *)DataBuffer, BUFFER_SIZE);
printf("\r\n32-bit CRC 校验码为:0X%X\r\n", CRCValue);
}
printf("\r\nCRC(循环冗余校验)测试成功\r\n");
while (1)
{
}
}
回复
有奖活动 | |
---|---|
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K314】芯片启动流程分析被打赏40分 |