STM32cubeMx-配置定时器输出PWM

1 配置RCC
High Speed Clock(HSE)选择第三项(即外部时钟源)
在这里插入图片描述
2 配置SYS
Debug选择第二项Serial Wire
在这里插入图片描述
3 设置时钟
切换到Clock Configuration,按下图方式配置
在这里插入图片描述
4 配置定时器
4.1 Clock Source选择Internal Clock(内部时钟)
4.2 channel1~channel4四个通道可根据需求确定使用哪几个通道(我这里选 择channe1)。channel1配置为PWM Generation CH1
4.3 Prescaler(预分频系数)设置为72-1,
Counter Mode设置为Up(向上计数模式)
Counter Period设置为100-1。(这个是ARR自动重装载值,决定了PWM的频率)
Mode和CH Polorioty的设置将会影响PWM波占空比的设置。
Pulse是设置CRR的值(即配置不同的占空比),假如Mode设置为PWM mode1,CH Polorioty设置为Hign时,Pulse若为0,PWM的占空比将会是0。
4.4 PWM频率计算:频率=定时器时钟频率/定时器分频系数/自动重装载值

f=72*10^6/72/100=10kHz在这里插入图片描述
5 Project Manage相关配置
5.1给工程命名
5.2选择工程目录
5.3选择自己使用的编译器
5.4给每个外设生成对应的.c/.h文件
6 点击GENERATE CODE生成代码
在这里插入图片描述
在这里插入图片描述
7.打开工程,添加红框中的代码
在这里插入图片描述
在这里插入图片描述

1. 打开STM32CubeMX软件,创建一个新工程。 2. 选择你的芯片型号,点击“新建工程”。 3. 在左侧的“Pinout & Configuration”选项卡中,选择“TIM8”定时器。 4. 在右侧的“TIM8”选项卡中,选择“PWM Generation CH1”选项。 5. 配置PWM频率和占空比。可以选择“Frequency (Hz)”选项,输入所需的频率。然后选择“Duty Cycle (%)”选项,输入所需的占空比。 6. 在“TIM8”选项卡下面的“NVIC Settings”中,启用“TIM8 Global Interrupt”。 7. 保存并生成代码。在生成代码之前,要确保已经选择了正确的MCU和工具链。 8. 在生成的代码中,找到“void MX_TIM8_Init(void)”函数,在其中添加以下代码: ``` TIM_MasterConfigTypeDef sMasterConfig = {0}; TIM_OC_InitTypeDef sConfigOC = {0}; htim8.Instance = TIM8; htim8.Init.Prescaler = 0; htim8.Init.CounterMode = TIM_COUNTERMODE_UP; htim8.Init.Period = 65535; htim8.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim8.Init.RepetitionCounter = 0; if (HAL_TIM_PWM_Init(&htim8) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim8, &sMasterConfig) != HAL_OK) { Error_Handler(); } sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 32767; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; if (HAL_TIM_PWM_ConfigChannel(&htim8, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) { Error_Handler(); } HAL_TIM_MspPostInit(&htim8); ``` 9. 在“main.c”文件中添加以下代码,以设置PWM占空比: ``` HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_1); HAL_TIM_PWM_Stop(&htim8, TIM_CHANNEL_1); ``` 10. 编译和下载程序。在运行程序之前,确保你已经连接了定时器8的PWM输出引脚到外部设备上。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值