发 帖  
原厂入驻New
[问答] 通过串口输入空占比的数值来控制PWM输出的波形,怎样取出串口的输入值呢
137 PWM 波形
分享
原子哥,你好

我现在想通过串口输入空占比的数值来控制PWM输出的波形,现在遇到的问题是怎样取出串口的输入值呢?是在USART_RX_BUF里还是在USART_DR里呢?

LED0_PWM_VAL=? 底层我暂时没有改动,若需要改动,在哪几个方面改呢?谢谢
0
2020-5-25 02:25:15   评论 分享淘帖 邀请回答
11个回答
利用我们的usmart,可以让你很方便的实现你要的功能.
2020-5-25 12:27:13 评论

举报

我使用了下面的语句
u8 a;
a=USART->DR;
LED0_PWM_VAL=a; 
出来的不是PWM波了,而且输入任意数字波形都不改变。。。。
2020-5-25 12:37:59 评论

举报

好的,我再看一下,谢谢原子哥~ 
2020-5-25 12:46:44 评论

举报

利用我们的usmart,可以让你很方便的实现你要的功能.
---------------------------------
原子哥,我按照使用手册里的把定时器2的代码写入了timer.c 但是编译总是出现错误 identifier "usmart_dev"is undefined   我明明写的是usmart_dev.scan()这个函数啊,这是为什么?
2020-5-25 12:58:20 评论

举报

串口的速度太慢了,会影响到PWM的输出,高速时最好不要用。
2020-5-25 13:17:41 评论

举报

谢谢提醒,我做好了看下效果吧~~ 因为要得到连续的即时性的空占比和电流的一个关系,我只能想到这么一个办法了
2020-5-25 13:31:29 评论

举报

usmart_dev都没有,那肯定会报错了.
2020-5-25 13:36:54 评论

举报

usmart_dev都没有,那肯定会报错了.
---------------------------------
原子哥,现在可以通过PWM_Init这个函数控制频率了,后来我自己编了一个函数叫Duty_cycle(u16 g)来控制空占比,申明如下
void Duty_cycle(u16 g)
{
 TIM3->CCR2=g;
}  
在USMART里也加入了相应函数,在串口助手里输入不同的g值,波形空占比是会发生变化但马上就又复原了~这是为什么呢?谢谢
2020-5-25 13:51:25 评论

举报

复原应该是你在其他地方还有CCR2的设置.
自己检查下.
2020-5-25 14:00:42 评论

举报

复原应该是你在其他地方还有CCR2的设置.
自己检查下.
---------------------------------
问题已解决~ 我还有个疑问,现在想通过AD变换来测量电流和电压值,能否让AD变换后的测量值通过串口显示在串口助手里呢?有没有什么好的建议~谢谢原子哥
2020-5-25 14:15:31 评论

举报

只有小组成员才能发言,加入小组>>

77个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表