广告

原创 NUCLEO-F722ZE UART 调节 PWM 占空比输出

2019-6-5 13:06 645 3 5 分类: MCU/ 嵌入式
NUCLEO-F722ZE  PWM 输出

通过 UART 接收到底信息,来调节PWM的输出

配置,选择TIM1 CHI 通道来输出
   

配置好后生成工程,打开工程。

在 main.c  中添加如下
#include “stdio.h”


#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */


PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}

使得 printf() 函数能够通过 串口UART 输出。


UART 接收中断函数,注意 串口初始化后要通过
HAL_UART_Receive_IT(&huart1,ucReceiveData,3);
开启接收中断
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance==USART1)
{
if((ucReceiveData[0] == 0xFE)&&(ucReceiveData[2] == 0xFE))
{
Flag_Change = 1;
ulPulse = ucReceiveData[1];
}
}

}
处理接收到的数据,也就是占空比了。接收到数据后,将 Falg_Change 置 1 ,表示接收到了有效数据。

在 main 函数中添加如下内容:
//开启 PWM 输出
if (HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
while (1)
{
if(Flag_Change)  //判断是否接收到数据
{
//接收到了数据,并开始更改 PWM 的占空比,首先先停止 PWM
if (HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
//重新配置PWM
sConfigOC.Pulse = 9999*ulPulse/100;
if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
//开启 PWM 输出
if (HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
Flag_Change = 0; //完成后将 Flag_Change 复位
//串口反馈
printf("** the duty is %d  ** \r\n",ulPulse);
//重新开启接收中断
HAL_UART_Receive_IT(&huart1,ucReceiveData,3);
}
HAL_Delay(500);
}



测试:通过串口 占空比 0~100% 可调节
 
默认占空比 50% 输出波形
 
通过串口 发送 0xFE 0x01 0xFE 调节占空比位 1% 输出波形

 
通过串口 发送 0xFE 0x0A 0xFE 调节占空比位 10% 输出波形
 
通过串口 发送 0xFE 0x14 0xFE 调节占空比位 20% 输出波形
 
 
通过串口 发送 0xFE 0x32 0xFE 调节占空比位 50% 输出波形
 
通过串口 发送 0xFE 0x50 0xFE 调节占空比位 80% 输出波形
 
通过串口 发送 0xFE 0x01 0xFE 调节占空比位 100% 输出波形

作者: 天阳, 来源:面包板社区

链接: https://www.mianbaoban.cn/blog/uid-me-3889268.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

广告

文章评论 3条评论)

登录后参与讨论

whik 2019-6-6 11:23

楼主的用的是什么虚拟示波器,高大上啊,电脑显示波形

测量无处不在 2019-6-6 08:34

赞,这波形看着舒服。

curton 2019-6-5 20:49

厉害 啊
相关推荐阅读
天阳 2019-05-13 12:58
NUCLEO-F722ZE 开箱测评
昨天晚上收到的开发板,快递小哥包装的很好,好大的一个箱子,板子完好。正面反面接上USB数据线后,(Micro USB,安卓手机数据线),开始运行出厂的程序,当然是LED灯了,板子上只有这个可以直观的查...
我要评论
3
3
广告
关闭 热点推荐上一条 /3 下一条