- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32测量高电平脉宽(TIM5CH1原子版)
测量PWM输出的高电平脉宽
//定时器5通道1输入捕获配置
//arr:自动重装值
//psc:时钟预分频数
void TIM5_Cap_Init(u16 arr,u16 psc)
{
RCC-APB1ENR|=13; //TIM5 时钟使能
RCC-APB2ENR|=12; //使能PORTA时钟
GPIOA-CRL=0XFFFFFFF0; //PA0 清除之前设置
GPIOA-CRL|=0 //PA0 输入
GPIOA-ODR|=00; //PA0 下拉
TIM5-ARR=arr; //设定计数器自动重装值
TIM5-PSC=psc; //预分频器
TIM5-CCMR1|=10; //CC1S=01 选择输入端 IC1映射到TI1上
TIM5-CCMR1|=04; //IC1F=0000 配置输入滤波器 不滤波
TIM5-CCMR1|=010; //IC2PS=00 配置输入分频,不分频
TIM5-CCER|=01; //CC1P=0 上升沿捕获
TIM5-CCER|=10; //CC1E=1 允许捕获计数器的值到捕获寄存器中
TIM5-DIER|=11; //允许捕获中断
TIM5-DIER|=10; //允许更新中断
TIM5-CR1|=0x01; //使能定时器2
MY_NVIC_Init(2,0,TIM5_IRQChannel,2);//抢占2,子优先级0,组2
}
//捕获状态
//[7]:0,没有成功的捕获;1,成功捕获到一次.
//[6]:0,还没捕获到高电平;1,已经捕获到高电平了.
//[5:0]:捕获高电平后溢出的次数
u8 TIM5CH1_CAPTURE_STA=0; //输入捕获状态
u16 TIM5CH1_CAPTURE_VAL; //输入捕获值
//定时器5中断服务程序
void TIM5_IRQHandler(void)
{
u16 tsr;
tsr=TIM5-SR;
if((TIM5CH1_CAPTURE_STA0X80)==0)//还未成功捕获
{
if(tsr0X01)//溢出
{
if(TIM5CH1_CAPTURE_STA0X40)//已经捕获到高电平了
{
if((TIM5CH1_CAPTURE_STA0X3F)==0X3F)//高电平太长了
{
TIM5CH1_CAPTURE_STA|=0X80;//标记成功捕获了一次
TIM5CH1_CAPTURE_VAL=0XFFFF;
}else TIM5CH1_CAPTURE_STA++;
}
}
if(tsr0x02)//捕获1发生捕获事件
{
if(TIM5CH1_CAPTURE_STA0X40) //捕获到一个下降沿
{
TIM5CH1_CAPTURE_STA|=0X80; //标记成功捕获到一次高电平脉宽
TIM5CH1_CAPTURE_VAL=TIM5-CCR1; //获取当前的捕获值.
TIM5-CCER=~(11); //CC1P=0 设置为上升沿捕获
}else //还未开始,第一次捕获上升沿
{
TIM5CH1_CAPTURE_STA=0; //清空
TIM5CH1_CAPTURE_VAL=0;
TIM5CH1_CAPTURE_STA|=0X40; //标记捕获到了上升沿
TIM5-CNT=0; //计数器清空
TIM5-CCER|=11; //CC1P=1 设置为下降沿捕获
}
}
}
TIM5-SR=0;//清除中断标志位
}
此部分代码包含2个函数,其中TIM5_Cap_Init函数用于TIM5通道1的输入捕获设置,
其设置和我们上面讲的步骤是一样的,这里就不多说,重点来看看第二个函数。
TIM5_IRQHandler是TIM5的中断服务函数,该函数用到了两个全局变量,用于辅助实现
高电平捕获。其中TIM5CH1_CAPTURE_STA,是用来记录捕获状态,该变量类似我们在usart.c里面自行定义的USART_RX_STA寄存器。TIM5CH1_CAPTURE_STA各位描述如表15.3.1所示:
现在我们来
您可能关注的文档
- SK型门座起重机机臂架尾部补强工艺.doc
- Sobolev and Besov Spaces on RN.doc
- SolidWorks插件知识.doc
- SolidWorks 3D ContentCentral 2008 进一步统一全球工程界.doc
- Solidworks之扫描.doc
- SolidWorks插件详解.doc
- Solidworks模具插件试用体会.doc
- Sopcast channel list.doc
- SONiX 8Bit Micro Controller Software Criterion 编程规范.doc
- Soursing Burette infusion sets (Jan 3rd).doc
- 2025年打拳游戏测试题及答案.doc
- 2023-2024学年度第一学期期末教学质量检测六年级_(6265)剑河县城关第四小学_总分_分析报告.pdf
- 2023-2024学年度第一学期期末教学质量检测六年级_(6267)麻栗小学_总分_分析报告.pdf
- 2025年打拳游戏测试题及答案大全.doc
- 2025年打拳游戏测试题及答案解析.doc
- 2023-2024学年度第一学期期末教学质量检测六年级_(6266)剑河县城关第一小学_总分_分析报告.pdf
- 2026高考数学一轮复习培优08 导数中的极值点偏移、拐点偏移问题(复习讲义)(全国通用)(原卷版).docx
- 2025年打架斗殴知识测试题及答案.doc
- 2025年打捞古董测试题及答案.doc
- 2023-2024学年度第一学期期末教学质量检测六年级_(6270)剑河县城关第二小学_总分_分析报告.pdf
最近下载
- xx售楼中心、样板间、会所物业服务方案.doc VIP
- 2025年贵州贵阳乌当富民村镇银行招聘客户经理笔试历年典型考题及考点剖析附带答案详解.docx
- 2025年初级钳工试题及答案钳工试题(含答案).docx VIP
- 一张奖状的动力(1).doc
- 框架钢结构施工组织设计.pdf VIP
- 2025年交管学法减分考试题库以及答案(160题完整版) .pdf VIP
- 学校食堂食材配送服务方案(肉类、粮油米面、蔬菜水果类).docx VIP
- 2025年交管学法减分考试题库以及答案(160题完整版) .pdf VIP
- 会计师事务所质量管理制度.docx VIP
- 《会计师事务所质量管理制度》.pptx VIP
文档评论(0)