欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STM32 TIM8 6路互補三相SPWM波形輸出 源程序
[打印本頁]
作者:
墨墨小可愛
時間:
2020-6-18 11:20
標題:
STM32 TIM8 6路互補三相SPWM波形輸出 源程序
這是我之前寫的STM32的SPWM波形程序,使用TIM8的三對互補端口進行波形產(chǎn)生。
單片機源程序如下:
#include "stm32f10x.h"
#include "SysTickDelay.h"
#include "misc.h"
#include "remote.h"
u32 Remote_Odr=0; //命令暫存
u8 Remote_Cnt=0; //按鍵按下次數(shù)
u8 Remote_Rdy=0; //紅外接收到數(shù)據(jù)
/*****紅外鍵盤初始化****/
void Remote_Init(void) //初始化
{
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 ; //選擇引腳2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉輸入模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //輸出頻率最大50MHz
GPIO_Init(GPIOC,&GPIO_InitStructure);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource10); //配置中斷線路PC.2
EXTI_InitStructure.EXTI_Line = EXTI_Line10;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //使能中斷
EXTI_Init(&EXTI_InitStructure);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷向量組2
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQChannel ;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //搶占優(yōu)先級0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //響應(yīng)優(yōu)先級0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
/**********檢測脈沖寬度**************************************/
/**********最長脈寬5ms***************************************/
/**********返回值:x,代表x*20us*****************************/
u8 Pulse_Width_Check(void)
{
u8 t=0;
while(RDATA)
{
t++;delay_us(20);
if(t==250)return t;
}
return t;
}
/********中斷處理程序*******************************/
void EXTI15_10_IRQHandler(void)
{
u8 res=0;
u8 OK=0;
u8 RODATA=0;
while(1)
{
if(RDATA)
{
res=Pulse_Width_Check();
if(res==250)break;
if(res>=200&&res<=250)OK=1;
else if(res>=85&&res<=200)
{
Remote_Rdy=1;
Remote_Cnt++;
break;
}
else if(res>=50&&res<=85)RODATA=1;
else if(res>=10&&res<=50)RODATA=0;
if(OK)
{
Remote_Odr<<=1;
Remote_Odr+=RODATA;
Remote_Cnt=0;
}
}
}
EXTI_ClearFlag(EXTI_Line10);
}
/********處理鍵盤*******************************/
/********返回相應(yīng)鍵值*******************************/
u8 Remote_Process(void)
{
u8 t1,t2;
t1=Remote_Odr>>8;
t2=Remote_Odr;
Remote_Rdy=0;
if(t1!=(u8)~t2)return 'N';
switch(t1)
{ // 顯示遙控上的字符按鍵
case 162: return 'M';
case 98: return 'U';
case 226: return'B';
case 34: return'L';
case 2: return'O';
case 194: return'R';
case 224: return'*';
case 168: return'D';
case 144: return'#';
case 104: return 0;
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
SPWM - TIM8三相六路輸出.7z
(244.89 KB, 下載次數(shù): 96)
2020-6-18 15:11 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時間:
2020-6-18 15:11
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1