本人采用Cube 进行的STM32库函数编程,PWM波的输出配置以及代码如下所示:(经过实际实验证明非常好用)
以下为定时器PWM输出函数,注意:使用时一定要把原来输出函数注释掉。
注释代码如下:
// sConfigOC.OCMode = TIM_OCMODE_PWM1;
// sConfigOC.Pulse = 0;
// sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
// sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
// if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
// {
// _Error_Handler(FILE, LINE);
// }
// if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
// {
// _Error_Handler(FILE, LINE);
// }
// if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
// {
// _Error_Handler(FILE, LINE);
// }
// if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
// {
// _Error_Handler(FILE, LINE);
// }
void PWM_Change_Duty(float x,float y,float z,float w)
{
TIM_OC_InitTypeDef sConfigOC;
sConfigOC.OCMode = TIM_OCMODE_PWM1;//pwm输出模式配置
sConfigOC.Pulse = x;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
//pwm输出停止函数
if(HAL_TIM_PWM_Stop(&htim4,TIM_CHANNEL_1) != HAL_OK)
{
_Error_Handler(FILE, LINE);//错误等待函数
}
//pwm输出配置函数
if(HAL_TIM_PWM_ConfigChannel(&htim4,&sConfigOC,TIM_CHANNEL_1) != HAL_OK)
{
_Error_Handler(FILE,LINE);
}
//pwm输出开始函数
if(HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_1)!= HAL_OK)
{
_Error_Handler(FILE,LINE);
}
sConfigOC.Pulse = y;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
//pwm输出停止函数
if(HAL_TIM_PWM_Stop(&htim4,TIM_CHANNEL_2) != HAL_OK)
{
_Error_Handler(FILE, LINE);//错误等待函数
}
//pwm输出配置函数
if(HAL_TIM_PWM_ConfigChannel(&htim4,&sConfigOC,TIM_CHANNEL_2) != HAL_OK)
{
_Error_Handler(FILE,LINE);
}
//pwm输出开始函数
if(HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_2)!= HAL_OK)
{
_Error_Handler(FILE,LINE);
}
sConfigOC.Pulse = z;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
//pwm输出停止函数
if(HAL_TIM_PWM_Stop(&htim4,TIM_CHANNEL_3) != HAL_OK)
{
_Error_Handler(FILE, LINE);//错误等待函数
}
//pwm输出配置函数
if(HAL_TIM_PWM_ConfigChannel(&htim4,&sConfigOC,TIM_CHANNEL_3) != HAL_OK)
{
_Error_Handler(FILE,LINE);
}
//pwm输出开始函数
if(HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_3)!= HAL_OK)
{
_Error_Handler(FILE,LINE);
}
sConfigOC.Pulse = w;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
//pwm输出停止函数
if(HAL_TIM_PWM_Stop(&htim4,TIM_CHANNEL_4) != HAL_OK)
{
_Error_Handler(FILE, LINE);//错误等待函数
}
//pwm输出配置函数
if(HAL_TIM_PWM_ConfigChannel(&htim4,&sConfigOC,TIM_CHANNEL_4) != HAL_OK)
{
_Error_Handler(FILE,LINE);
}
//pwm输出开始函数
if(HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_4)!= HAL_OK)
{
_Error_Handler(FILE,LINE);
}
}
上一篇:STM32死机 调试时进入HardFault_Handler定位错误的方法
下一篇:stm32入门——PWM输出控制直流电机变速
推荐阅读
史海拾趣
在电子行业的早期,FDK AMERICA公司凭借其卓越的技术研发能力,成功开发出一款高性能的集成电路产品。这款产品在市场上迅速获得了认可,并为公司带来了可观的利润。随后,公司继续加大研发投入,不断推出创新产品,逐步确立了其在电子行业的领先地位。
随着技术的不断进步,Diodes Incorporated始终保持着对新技术研发的投入。其中,公司推出的首款碳化硅(SiC)萧特基势垒二极管(SBD)就是一个重要的里程碑。这款产品的推出,不仅大幅提高了半导体器件的效率和高温可靠性,还满足了市场对降低系统执行成本和减少维护需求的期望。这一技术创新的突破,进一步巩固了Diodes Incorporated在半导体行业中的领先地位。
DFI深知产品质量对于企业的重要性。因此,公司从设计到生产,都实施了严格的质量管理。在产品设计阶段,DFI的专责团队会对电路、机构和零组件进行严格的测试与检验,确保每个专案的设计和质量都具备一致的高质量。在生产阶段,所有产品出货前都必须通过完整的产品内部检验,以确保产品的可靠性和耐久性。这些质量管理措施使DFI的产品在市场上享有良好的口碑,也为公司赢得了众多客户的信任。
FMS深知合作的重要性,积极与行业内外的优秀企业建立长期合作关系。公司现已与伟创力、TCL、比亚迪、OPPO、京东方等多家知名企业建立了良好的合作关系,共同推动电子行业的发展。这些合作不仅为FMS带来了稳定的订单来源,也促进了双方在技术、市场等方面的深入交流与合作。
为了更好地服务全球客户,FMS积极实施全球化战略。公司在中国深圳设立了子公司——深圳市美丽微半导体有限公司,作为在中国大陆的主要生产基地与销售窗口。同时,FMS还在亚洲、欧洲、美洲等地设立了多个销售据点,形成了覆盖全球的营销网络。这一布局不仅提升了FMS的市场响应速度,也极大地增强了其品牌影响力。
随着技术创新的成功,A-BRIGHT公司开始积极寻求市场拓展。公司首先瞄准了欧洲市场,通过参加国际电子展会和建立销售网络,成功将产品打入欧洲市场。随后,A-BRIGHT又进军北美市场,通过与当地的大型电子分销商合作,进一步扩大了市场份额。这些市场拓展的成功为A-BRIGHT的快速发展奠定了坚实基础。
有一些常用的电子元件(电阻,电容,二极管,IC等)的3D库。这也是我在网上找到的。为了尊重原主人的劳动,特贴出他的网址http://space.3dsource.cn/hnhkj/resource-0-1250.html。 我把它们都下载下来了,免去大家的再次下载之苦。… 查看全部问答∨ |
|
在研究高砂的电路的时候你不会有太多先进的感觉,也许是十多年前的设计缘故。似乎觉得他的模拟电路设计没有什么过人之处,与EX-375所达到性能形成了另一种对比,既土土的设计也有好的性能,这大概是模拟应用设计的另一种辩证法。这个辩证法的核心既 ...… 查看全部问答∨ |
|
在PCB板布线中,整个PCB板中的布线完成得都很好,但如果电源、 地线的布置考虑不周到而引起干扰,使产品的性能下降,严重时会降低产品的成功率。要把电源线和地线处理好,将电源线和地线所产生的噪音干扰降到最低限度,以保证产品的质量。 一、电 ...… 查看全部问答∨ |
我的设备信息:usb\VID_19D2&PID_0017&MI_03\6&227C3C0A&0003,请问后面6&227C3C0A&0003这个是干什么用的? 我的设备信息:usb\\VID_19D2&PID_0017&MI_03\\6&227C3C0A&0003,请问后面6&227C3C0A&0003这个是干什么用的?… 查看全部问答∨ |
汽车传动系统是汽车发动机与驱动轮之间的所有动力传递装置的总称,它最基本的作用就是进行动力之间的传送,也就是说汽车发动机在发动的时候产生的动力,需要经过传动系统来转化成驱动汽车车轮运动的动力,从而可以使汽车获得运动速度。汽车传 ...… 查看全部问答∨ |
|
大家新建工程时,用到的一些库函数还是一直使用默认的目录吗? C:\\tidcs\\c28\\DSP2802x\\v126\\DSP2802x_headers\\include C:\\tidcs\\c28\\DSP2802x\\v126\\DSP2802x_common\\include 有修改后,没错误提示的工程吗?… 查看全部问答∨ |