OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 14076|回复: 11

关于串口输入数值来控制PWM空占比

[复制链接]

26

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2012-5-31
在线时间
0 小时
发表于 2012-6-4 16:03:37 | 显示全部楼层 |阅读模式

原子哥,你好

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

即LED0_PWM_VAL=? 底层我暂时没有改动,若需要改动,在哪几个方面改呢?谢谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-6-4 16:27:08 | 显示全部楼层
回复【楼主位】yyisme1988:
---------------------------------
利用我们的usmart,可以让你很方便的实现你要的功能.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

26

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2012-5-31
在线时间
0 小时
 楼主| 发表于 2012-6-4 16:27:59 | 显示全部楼层

我使用了下面的语句
u8 a;
a=USART->DR;
LED0_PWM_VAL=a; 
出来的不是PWM波了,而且输入任意数字波形都不改变。。。。
回复 支持 反对

使用道具 举报

26

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2012-5-31
在线时间
0 小时
 楼主| 发表于 2012-6-4 16:29:24 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
好的,我再看一下,谢谢原子哥~ 
回复 支持 反对

使用道具 举报

26

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2012-5-31
在线时间
0 小时
 楼主| 发表于 2012-6-5 14:30:22 | 显示全部楼层
回复【2楼】正点原子:
回复【楼主位】yyisme1988:
---------------------------------
利用我们的usmart,可以让你很方便的实现你要的功能.
---------------------------------
原子哥,我按照使用手册里的把定时器2的代码写入了timer.c 但是编译总是出现错误 identifier "usmart_dev"is undefined   我明明写的是usmart_dev.scan()这个函数啊,这是为什么?
回复 支持 反对

使用道具 举报

20

主题

111

帖子

2

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2011-10-18
在线时间
9 小时
发表于 2012-6-5 14:35:33 | 显示全部楼层
串口的速度太慢了,会影响到PWM的输出,高速时最好不要用。
?成功只是最后一小步的坚持!
回复 支持 反对

使用道具 举报

26

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2012-5-31
在线时间
0 小时
 楼主| 发表于 2012-6-5 14:59:52 | 显示全部楼层
回复【6楼】suqingxiao:
串口的速度太慢了,会影响到PWM的输出,高速时最好不要用。
---------------------------------
谢谢提醒,我做好了看下效果吧~~ 因为要得到连续的即时性的空占比和电流的一个关系,我只能想到这么一个办法了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-6-5 15:29:11 | 显示全部楼层
回复【5楼】yyisme1988:
---------------------------------
usmart_dev都没有,那肯定会报错了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

26

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2012-5-31
在线时间
0 小时
 楼主| 发表于 2012-6-8 08:30:52 | 显示全部楼层
回复【8楼】正点原子:
回复【5楼】yyisme1988:
---------------------------------
usmart_dev都没有,那肯定会报错了.
---------------------------------
原子哥,现在可以通过PWM_Init这个函数控制频率了,后来我自己编了一个函数叫Duty_cycle(u16 g)来控制空占比,申明如下
void Duty_cycle(u16 g)
{
 TIM3->CCR2=g;
}  
在USMART里也加入了相应函数,在串口助手里输入不同的g值,波形空占比是会发生变化但马上就又复原了~这是为什么呢?谢谢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-6-8 09:02:06 | 显示全部楼层
回复【9楼】yyisme1988:
---------------------------------
复原应该是你在其他地方还有CCR2的设置.
自己检查下.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

26

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2012-5-31
在线时间
0 小时
 楼主| 发表于 2012-6-8 09:11:11 | 显示全部楼层
回复【10楼】正点原子:
回复【9楼】yyisme1988:
---------------------------------
复原应该是你在其他地方还有CCR2的设置.
自己检查下.
---------------------------------
问题已解决~ 我还有个疑问,现在想通过AD变换来测量电流和电压值,能否让AD变换后的测量值通过串口显示在串口助手里呢?有没有什么好的建议~谢谢原子哥
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-6-8 12:38:54 | 显示全部楼层
回复【11楼】yyisme1988:
---------------------------------
printf
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 05:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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