初级会员

- 积分
- 74
- 金钱
- 74
- 注册时间
- 2018-8-6
- 在线时间
- 17 小时
|

楼主 |
发表于 2018-8-20 18:35:15
|
显示全部楼层
首先,感谢二楼的方法!
我测试了PWM的配置!主函数代码如下:
#include "sys.h"
#include "led.h"
#include "delay.h"
#include "key.h"
#include "usart.h"
#include "stm32f10x_tim.h"
TIM_OCInitTypeDef TIM_OCInitTypeDefStrue;
void test(void)
{
printf("TIM_OCInitTypeDefStrue.TIM_OCMode=%d\r\n",TIM_OCInitTypeDefStrue.TIM_OCMode);
printf("TIM_OCInitTypeDefStrue.TIM_OCNPolarity=%d\r\n",TIM_OCInitTypeDefStrue.TIM_OCNPolarity);
printf("TIM_OCInitTypeDefStrue.TIM_OutputState=TIM_CounterMode_Up=%d\r\n",TIM_OCInitTypeDefStrue.TIM_OutputState);
printf("TIM_OCInitTypeDefStrue.TIM_OCNIdleState=%d\r\n",TIM_OCInitTypeDefStrue.TIM_OCNIdleState);
printf("TIM_OCInitTypeDefStrue.TIM_Pulse=%d\r\n",TIM_OCInitTypeDefStrue.TIM_Pulse);
printf("TIM_OCInitTypeDefStrue.TIM_OCIdleState=%d\r\n",TIM_OCInitTypeDefStrue.TIM_OCIdleState);
printf("TIM_OCInitTypeDefStrue.TIM_OutputNState=%d\r\n",TIM_OCInitTypeDefStrue.TIM_OutputNState);
printf("\r\n ============== \r\n");
}
int main(void)
{
TIM_OCInitTypeDefStrue.TIM_OCMode=TIM_OCMode_PWM2;
TIM_OCInitTypeDefStrue.TIM_OCNPolarity=TIM_OCPolarity_High;
TIM_OCInitTypeDefStrue.TIM_OutputState=TIM_OutputState_Enable;
TIM_OC2Init(TIM3,&TIM_OCInitTypeDefStrue);
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:两位抢占优先级,两位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //LED端口初始化
KEY_Init(); //初始化相应函数
while(1)
{
test();
delay_ms(10000);
}
}
输出结果:
TIM_OCInitTypeDefStrue.TIM_OCMode=112
TIM_OCInitTypeDefStrue.TIM_OCNPolarity=0
TIM_OCInitTypeDefStrue.TIM_OutputState=TIM_CounterMode_Up=1
TIM_OCInitTypeDefStrue.TIM_OCNIdleState=0
TIM_OCInitTypeDefStrue.TIM_Pulse=0
TIM_OCInitTypeDefStrue.TIM_OCIdleState=0
TIM_OCInitTypeDefStrue.TIM_OutputNState=0
==============
个人总结的话:就是假如配置,那么就是选取相应配置的值!假如没操作,就是0!好像和复位电平为0有关!
五楼的建议,我确实去看了,但C语言水平有限,没搞明白!
|
|