STM32F030解码PT2264
STM32F030解码PT2264
STM32F030F4P6解码PT2264 QQ 7982728
思路:
接收板的数据引脚接030的PA4,采用中断方式。电平变化启动定时器3进行计数。
单片机内部RC 8M。
2264的R是4.7M欧姆
编译环境:KEIL 5.11
以下是关键函数。
void EXTI4_15_IRQHandler(void)//外部中断程序
{
if(EXTI_GetITStatus(EXTI_Line4) != RESET)///判断是否是外部线路4电平发生变化
{
TIM3->CR1 &=0xfffe;//关闭定时器
one=maikuan;
maikuan=TIM3->CNT;//读取定时器计数值
TIM3->CNT=0;//定时器计数值清零
TIM3->CR1|=1; //重新启动定时器
EXTI_ClearITPendingBit(EXTI_Line4); //清除中断标志 if(sync==0)//判断是否已经收到同步帧
{
if((maikuan>11000)&(one>(xiao-fanwei)&one<(xiao+fanwei))){sync=1;} //这里 //判断同步短帧和长帧的脉冲宽度。如果时间合适,就设置同步标志=1
}
else{//已经同步
if(maikuan>(xiao-fanwei)&&maikuan<(xiao+fanwei))
{HL[mcsl]=0;} //判断数据宽度是否符合数据0的排列
else
if(maikuan>(da-fanwei)&&maikuan<(da+fanwei)){HL[mcsl]=1;}//或者数据1的排列
else{
sync=0;//其他宽度,清零同步标志
mcsl=0;
last_key_data=0xffffffff;//上一次数据也清零
}
mcsl++;//数据正确,计数器加一,2264的数据变化一共是48次。 if(mcsl==48)//数据收完,开始判断脉冲宽度组合
{
for(a=0;a<12;a++)
{
da_data=da_data*4;
if(HL[a*4+0]*8+HL[a*4+1]*4+HL[a*4+2]*2+HL[a*4+3]==0x05){ //数据全0 } else
if(HL[a*4+0]*8+HL[a*4+1]*4+HL[a*4+2]*2+HL[a*4+3]==0x0a){da_data+=1;}//数据全1 else
if(HL[a*4+0]*8+HL[a*4+1]*4+HL[a*4+2]*2+HL[a*4+3]==0x06){da_data+=2;}//高阻抗
STM32F030解码PT2264
}
if(last_key_data==da_data) //做误码判断,2次一样数据才作为//正确输出
{if((u8)da_data!=0){
key_data=da_data;//
key_upd=1;}
}
Else {
last_key_data=da_data;
}
mcsl=0;
sync=0;
da_data=0;
}
}
}
}
void TIM3_Config(void)//定时器配置
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
TIM_TimeBaseStructure.TIM_Prescaler = 8;//预分频8,计数按照1M速度,每次1us
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period = 65535;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
TIM_Cmd(TIM3, ENABLE);
}
void EXIT_KEY_Init(void)//输入引脚配置
{
GPIO_InitTypeDef GPIO_InitStruct;
EXTI_InitTypeDef EXTI_InitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
/* config the extiline(PB0) clock and AFIO clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
NVIC_InitStruct.NVIC_IRQChannel = EXTI4_15_IRQn;;//开中断入口
NVIC_InitStruct.NVIC_IRQChannelPriority = 1;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
STM32F030解码PT2264
NVIC_Init(&NVIC_InitStruct);
/* EXTI line gpio config(PA4) */
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4; //
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;//输入模式
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_2;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; //
GPIO_Init(GPIOA, &GPIO_InitStruct);
/* EXTI line(PB0) mode config */
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource4); EXTI_InitStruct.EXTI_Line = EXTI_Line4;
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising_Falling; //上升下降都中断 EXTI_InitStruct.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStruct);
}
…… 此处隐藏:859字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [公文资料]市场营销专员岗位职责
- [公文资料]综合部经理岗位职责
- [公文资料]会计助理岗位职责
- [公文资料]林业站站长职责
- [公文资料]菜品研发部岗位职责
- [公文资料]街道综治办工作职责
- [公文资料]酒店前台的工作职责
- [公文资料]销售部经理岗位职责
- [公文资料]工程部副经理岗位职责
- [公文资料]手术室护士工作职责
- [公文资料]银行客户经理职责
- [公文资料]汽车4s店市场专员职责
- [公文资料]服装店长工作职责
- [公文资料]采购总监岗位职责
- [公文资料]大学行政秘书工作职责
- [公文资料]学校财务人员岗位职责
- [公文资料]财务统计员岗位职责
- [公文资料]物业工程主管工作职责
- [公文资料]公司后勤工作职责
- [公文资料]采矿工程师岗位职责
- 门面出租合同样板(门面出租的合同)
- 自用房屋租赁合同 自住房租房合同(汇总
- 最新酒店劳动合同管理制度(11篇)(酒店
- 2025年无产权车库买卖合同实用(14篇)(
- 建筑工程农民工劳动合同十五篇(通用)(
- 最新深圳标准劳动合同 深圳劳动合同如
- 解除劳动合同通知书(实用6篇)(解除劳动
- 2025年二手房屋买卖合同范围精选(二十
- 最新融资贷款居间合同大全(22篇)(融资
- 2025年个人二手房屋买卖合同协议书四篇
- 2025年果树苗木买卖合约书 签订果树苗
- 广东省劳动合同书填写(21篇)(广东省劳
- 最新餐饮行业没有劳动合同 劳动法餐饮
- 农村土地买卖合同(汇总21篇)(农村土地
- 最新房屋转租合同模版21篇(通用)(标准
- 2025年进口合同号查询五篇(大全)(进口
- 农村建房包工包料合同(通用8篇)(农村建
- 2025年安装监控合同协议书(15篇)(2025
- 2025年企业租赁经营合同(模板9篇)(2025
- 最新郊区土地租赁合同(优质23篇)(最新




