stm8的定时器的tim2的通道1,通道2输出pwm,对应的GPIO需要配置吗,咋么配置啊 stm8s005k6 单片机 tim2 ch2 无法输出PW...

\u8bf7\u6559stm8 tim2 PWM\u8f93\u51fa\u7684\u95ee\u9898\uff0c\u63a7\u5236\u8235\u673a

\u3000time2_ch3,\u4f60\u60f3\u7528\u4f5cPWM\u8f93\u51fa\u7684\u8bdd\uff0c\u5148\u8981\u5bf9\u82af\u7247\u505a\u5907\u9009\u529f\u80fd\u91cd\u6620\u5c04\uff0c\u5907\u9009\u529f\u80fd\u91cd\u6620\u5c04\u6709\u4e24\u79cd\u65b9\u6cd5\uff0c\u4e00\u79cd\u662f\u8f6f\u4ef6\u914d\u7f6e\uff0c\u8fd9\u79cd\u65b9\u5f0f\u590d\u6742\u4e9b\uff0c\u8fd8\u6709\u4e00\u79cd\u662f\u70e7\u5165\u5668\u65b9\u5f0f\uff0c\u4f60\u5982\u679c\u7528\u7684\u662fstvd\u7684\u8bdd\u5e94\u8be5\u6709\u8f6f\u4ef6\u53ef\u4ee5\u914d\u7f6e\u8fd9\u4e9b

\u4e0d\u662f\u53ef\u4ee5\u76f4\u63a5\u8c03\u7528\u5e93\u6587\u4ef6\u5417\uff1f
TIM1_DeInit();
//\u8bbe\u7f6e\u6b7b\u533a\u65f6\u95f410/16=0.6us
TIM1_BDTRConfig(TIM1_OSSISTATE_ENABLE,TIM1_LOCKLEVEL_OFF,10,TIM1_BREAK_DISABLE,
TIM1_BREAKPOLARITY_LOW,TIM1_AUTOMATICOUTPUT_DISABLE);
//\u8bbe\u7f6ePWM\u9891\u738710K
TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, 100*16, 0); //100us 10K

//PWM\u6781\u6027\u8bbe\u7f6e\u76f8\u540c\uff0c\u5219\u8f93\u51fa\u4e3a\u4e92\u8865\uff0c\u5426\u5219\u4e3a\u540c\u6b65\u4fe1\u53f7\u3002
TIM1_OC1Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_DISABLE, TIM1_OUTPUTNSTATE_DISABLE,
PulseWidth, TIM1_OCPOLARITY_HIGH, TIM1_OCNPOLARITY_HIGH,
TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_RESET);

TIM1_OC2Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_DISABLE, TIM1_OUTPUTNSTATE_DISABLE,
PulseWidth, TIM1_OCPOLARITY_HIGH, TIM1_OCNPOLARITY_HIGH,
TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_RESET);

TIM1_OC3Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_DISABLE, TIM1_OUTPUTNSTATE_DISABLE,
PulseWidth, TIM1_OCPOLARITY_HIGH, TIM1_OCNPOLARITY_HIGH,
TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_RESET);

TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE);
TIM1_ARRPreloadConfig(ENABLE);
TIM1_Cmd(ENABLE);
TIM1_CtrlPWMOutputs(ENABLE);

不需要任何配置的,只需要设置PWM的相关寄存,配置成输下PWM,他自动就输出PWM了

#include "STM8S103K.h" //头文件,定义各寄存器的地址

void main(void)
{
/*定时器基础设置*/
CLK_CKDIVR= 0x00; //内部16M时钟不分频
TIM2_PSCR = 0x00; //定时器2预分频系数为1
TIM2_CR1 = 0x01; //内部计数器使能;
TIM2_ARRH = 0x01;//0140,320分频,16M/320=50K,实测49.75K
TIM2_ARRL = 0x3e;//自动装载寄存器低位;实测013e正好为50.0K

/*PWM通道1设置*/
TIM2_CCER1 |= 0x01; //开启OC1信号输出脚
TIM2_CCMR1 = 0x60; //PWM1模式
TIM2_CCR1H = 0x00; //占空比高位
TIM2_CCR1L = 0xa0; //占空比低位
TIM2_CCMR1 |= 0x08; //输出比较1预装载使能

/*PWM通道2设置*/
TIM2_CCER1 |= 0x10; //开启OC2信号输出脚
TIM2_CCMR2 = 0x60; //PWM1模式
TIM2_CCR2H = 0x00; //占空比高位
TIM2_CCR2L = 0x03; //占空比低位
TIM2_CCMR2 |= 0x08; //输出比较2预装载使能

/*PWM通道3设置*/
TIM2_CCER2 = 0x01; //开启OC3信号输出脚
TIM2_CCMR3 = 0x60; //PWM1模式
TIM2_CCR3H = 0x01; //占空比高位
TIM2_CCR3L = 0x3d; //占空比低位
TIM2_CCMR3 |= 0x08; //输出比较3预装载使能

while (1); //
}

配置为推挽输出

可以参考ST库里自带的例程

  • stm8鐨勫畾鏃跺櫒鐨則im2鐨閫氶亾1,閫氶亾2杈撳嚭pwm,瀵瑰簲鐨凣PIO闇瑕侀厤缃悧,鍜嬩箞閰...
    绛旓細TIM2_ARRL = 0x3e;//鑷姩瑁呰浇瀵勫瓨鍣ㄤ綆浣嶏紱瀹炴祴013e姝eソ涓50.0K /*PWM閫氶亾1璁剧疆*/ TIM2_CCER1 |= 0x01; //寮鍚疧C1淇″彿杈撳嚭鑴 TIM2_CCMR1 = 0x60; //PWM1妯″紡 TIM2_CCR1H = 0x00; //鍗犵┖姣旈珮浣 TIM2_CCR1L = 0xa0; //鍗犵┖姣斾綆浣 TIM2_CCMR1 |= 0x08; //杈...
  • STM8S103F3P6鐢ㄤ粈涔堝紑鍙戠幆澧
    绛旓細tim2_arrh=0x01;//鑷姩閲嶈鐨勫 0x0100 tim2_arrl=0x00;鎹曡幏/姣旇緝浣胯兘瀵勫瓨鍣紝杩欎釜瀵勫瓨鍣ㄧ殑閰嶇疆鍙互閫夐氱浉搴鐨則im2閫氶亾銆俠it5锛宐it4涓篶h2閰嶇疆锛宐it1,bit0涓篶h1閰嶇疆 濡傛灉褰撳墠oc1涓鸿緭鍑洪氶亾锛屽垯 bit1:oc1浣庣數骞虫湁鏁 bit0:oc1淇″彿琚緭鍑哄埌褰撳墠寮曡剼涓 tim2_ccer1=bit0|bit1;//low level,oc1...
  • stm8s瀹氭椂鍣═IM2涓嶢DC1涓柇浼樺厛闂
    绛旓細ITC_SetSoftwarePriority(ITC_IRQ_TIM2_OVF, ITC_PRIORITYLEVEL_0);//瀹氭椂鍣═IM2婧㈠嚭涓柇 ITC_SetSoftwarePriority(ITC_IRQ_ADC2, ITC_PRIORITYLEVEL_1);//ADC2涓柇浼樺厛绾т负1锛屾瘮TIM2楂 浣犵‘瀹氭湁ADC1锛烮TC_SetSoftwarePriority鐨勪腑鏂簮涓紝鎴戞病鏈夌湅鍒癆DC1涔熴傛湜閲囩撼~
  • stm8 vref寮曡剼鏈変粈涔堢敤
    绛旓細stm8鐨凾IM1鍜TIM2鍙互杈撳嚭PWM锛岃緭鍑虹鑴氭槸TIM鐨勯氶亾锛屼綘鍙互浣跨敤搴撳嚱鏁拌缃 鍏堥厤缃甈WM棰戠巼锛屽啀閰嶇疆PWM绫诲瀷锛岄氶亾锛岀劧鍚庡啀浣胯兘瀹氭椂鍣锛屽鏋滈渶瑕佷娇鐢ㄤ腑鏂紝杩樺彲浠ユ墦寮涓柇 /* Time base configuration */ TIM2_TimeBaseInit(TIM2_PRESCALER_1, 999...
  • 璇锋暀stm8 tim2 PWM杈撳嚭鐨勯棶棰,鎺у埗鑸垫満
    绛旓細time2_ch3,浣犳兂鐢ㄤ綔PWM杈撳嚭鐨勮瘽锛屽厛瑕佸鑺墖鍋氬閫夊姛鑳介噸鏄犲皠锛屽閫夊姛鑳介噸鏄犲皠鏈変袱绉嶆柟娉曪紝涓绉嶆槸杞欢閰嶇疆锛岃繖绉嶆柟寮忓鏉備簺锛岃繕鏈変竴绉嶆槸鐑у叆鍣ㄦ柟寮忥紝浣犲鏋滅敤鐨勬槸stvd鐨勮瘽搴旇鏈夎蒋浠跺彲浠ラ厤缃繖浜
  • STM8鍗曠墖鏈虹敤TIM2涓柇瀹炵幇鐏棯鐑,涓嬮潰鐨勭▼搴忎负浠涔堜笉琛?
    绛旓細涓柇鏍囧織浣嶆湁娌℃湁娓呴櫎锛瀹氭椂鍣涓柇閲囩敤浠涔堟柟寮
  • stm8 鐨凾IM2鐨涓柇鐨勯棶棰
    绛旓細浼拌鏄竴鐩村湪涓柇閲岄潰銆俰涓嶆柇鐨勫姞锛屾孩鍑哄悗鍙堜粠0寮濮嬨
  • STM8 鍗曠墖鏈轰緥绋:鏈夎皝鏈変竴涓狶ED涓浜竴鐏殑渚嬬▼鍛?鏄疭MT8S鐨,鏈濂藉甫...
    绛旓細CLK_CKDIVR &= 0XF9; //CPU 2鍒嗛 CLK_SWR = 0XB4; //閫夋嫨澶栭儴鏃堕挓 while(!(CLK_SWCR&0X8)); //杩欓噷瑕佺瓑 CLK_SWCR |=0X2; //浣胯兘澶栭儴鏃堕挓 } //---TIMER2 init void TIM2_init(){ TIM2_PSCR |=0X04; //DIV16 1.333333US -> 澶栭儴鏅舵尟12mhz TIM2_I...
  • 鍏充簬STM8鍗曠墖鏈
    绛旓細a銆丼TM8S锛岄氱敤寰帶鍒跺櫒 b銆丼TM8L锛岃秴浣庡姛鑰桬nergyLite™寰帶鍒跺櫒 c銆丼TM8A锛屾苯杞︾骇寰帶鍒跺櫒 2銆佸浜庨夊瀷鏉ヨSTM8鐨涓昏鐗圭偣鏄渶楂樺伐浣滈鐜24MHz锛屾ц兘鍙互杈惧埌20MIPS銆瀹氭椂鍣绛夊璁捐祫婧愮殑鏋舵瀯鍜岀幇鍦ㄧ倷鎵嬪彲鐑殑STM32绯诲垪ARM鍩烘湰鐩稿悓锛屽彲浠ョ敤绫讳技鐨勬柟寮忔帶鍒讹紝瀹樻柟鎻愪緵浜嗚蒋浠舵灦鏋勫簱FWLib锛屽彲浠...
  • STM8S绯诲垪绋嬪簭绀轰緥
    绛旓細TIM3_CR1 = 0x01; // 璁℃暟鍣ㄤ娇鑳斤紝寮濮嬭鏁 } void Run(void){ //TIM2_CCR2H = (unsigned char)(value>>8); // 鏇存柊CC2姣旇緝瀵勫瓨鍣 //TIM2_CCR2L = (unsigned char)(value);TIM2_CCR1=value;//TIM2_CCR3=value;TIM3_CCR2=value;TIM3_CCR1=value; //娉ㄦ剰姣忎釜閫...
  • 扩展阅读:tim2.0下载 ... 定时器设置时间步骤 ... tim手机文件存储位置 ... stm32f429 tim3-etr ... tim最新版本下载 ... stm32定时器io口tim3 ... stm32f103zet6 ... tim在线是什么意思 ... 安卓手机如何打开 tim文件 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网