初级会员

- 积分
- 62
- 金钱
- 62
- 注册时间
- 2016-7-27
- 在线时间
- 11 小时
|
阿波罗开发板STM32F429核心 IO有上拉无PWM波形 编译通过无错误无警告 修改TIMx-CCRx也无效果 希望大家能指点下 谢谢求助代码如下:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "tim4.h"
/************************************************
ALIENTEK 阿波罗STM32F429开发板实验3
串口实验-HAL库函数版
技术支持:www.openedv.com
淘宝店铺:http://eboard.taobao.com
关注微信公众平台微信号:"正点原子",免费获取STM32资料。
广州市星翼电子科技有限公司
作者:正点原子 @ALIENTEK
************************************************/
int main(void)
{
u32 led0pwmval=0;
u32 dir=1;
HAL_Init(); //初始化HAL库
Stm32_Clock_Init(360,25,2,8); //设置时钟,180Mhz
delay_init(180); //初始化延时函数
uart_init(115200); //初始化USART
TIM4_GPIO_Config();
TIM4_Mode_Config(500-1,90-1);
while(1)
{
delay_ms(10);
if(dir)led0pwmval++; //dir==1 led0pwmval递增
else led0pwmval--; //dir==0 led0pwmval递减
if(led0pwmval>300)dir=0; //led0pwmval到达300后,方向为递减
if(led0pwmval==0)dir=1; //led0pwmval递减到0后,方向改为递增
TIM_SetTIM4Compare1(led0pwmval);
}
}
void TIM4_GPIO_Config (void)
{
GPIO_InitTypeDef GPIO_InitStructure;
__HAL_RCC_TIM3_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
GPIO_InitStructure.Pin = GPIO_PIN_12;
GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;
GPIO_InitStructure.Pull = GPIO_PULLUP;
GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
GPIO_InitStructure.Alternate = GPIO_AF2_TIM4;
HAL_GPIO_Init(GPIOD, &GPIO_InitStructure);
}
void TIM4_Mode_Config(u16 arr, u16 psc)
{
TIM_HandleTypeDef TIM4_Handler;
TIM_OC_InitTypeDef TIM4_CH1Handler;
TIM4_Handler.Instance =TIM4;
TIM4_Handler.Init.Period =arr;
TIM4_Handler.Init.Prescaler =psc;
TIM4_Handler.Init.ClockDivision =TIM_CLOCKDIVISION_DIV1;
TIM4_Handler.Init.CounterMode =TIM_COUNTERMODE_UP;
HAL_TIM_PWM_Init(&TIM4_Handler);
TIM4_CH1Handler.OCMode =TIM_OCMODE_PWM1;
TIM4_CH1Handler.Pulse =arr/2;
TIM4_CH1Handler.OCPolarity =TIM_OCPOLARITY_HIGH;
HAL_TIM_PWM_ConfigChannel(&TIM4_Handler,&TIM4_CH1Handler,TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&TIM4_Handler,TIM_CHANNEL_1);
}
void TIM_SetTIM4Compare1(u32 compare)
{
TIM4->CCR1=compare;
}
|
|