OpenEdv-开源电子网

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

用串口控制PWM 木有反应求助

[复制链接]

36

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
244
金钱
244
注册时间
2012-11-11
在线时间
14 小时
发表于 2012-12-6 19:43:21 | 显示全部楼层 |阅读模式
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h" 
#include "beep.h"  
#include "key.h"  
#include "exti.h"  
#include "wdg.h"  
#include "timer.h"  
//ALIENTEK战舰STM32开发板实验9
//PWM输出实验  
//技术支持:www.openedv.com
//广州市星翼电子科技有限公司 
int main(void)
{  
u8    
u16 led0pwmval=0;    
u8 dir=1;
Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,9600); //串口初始化为9600
delay_init(72);   //延时初始化 
LED_Init();   //初始化与LED连接的硬件接口
BEEP_Init();         //初始化蜂鸣器端口
KEY_Init();         //初始化与按键连接的硬件接口
  TIM3_PWM_Init(899,0); //不分频。PWM频率=72000/(899+1)=80Khz
    while(1)
{

  /*delay_ms(10);  
if(dir)led0pwmval++;
else led0pwmval--;  
  if(led0pwmval>300)dir=0;
if(led0pwmval==0)dir=1;    
LED0_PWM_VAL=led0pwmval;*/
if(USART_RX_STA&0x8000)
 {
 res=USART1->DR;
 switch(res)
 {
 case 0x30:
 {
 led0pwmval=0;
 led0pwmval++;
 LED0_PWM_VAL=led0pwmval;
 if(led0pwmval==500)
 led0pwmval=0;

 }
 break;
 case 0x31:
 {
 led0pwmval=500;
 led0pwmval--;
 if(led0pwmval==0)
 led0pwmval=500;

 }
 break;
 }


 }   
}
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2012-12-6 22:41:31 | 显示全部楼层
 res=USART1->DR;
  switch(res)
  {
  case 0x30:
  {
  led0pwmval=0;
  led0pwmval++;
  LED0_PWM_VAL=led0pwmval;
  if(led0pwmval==500)
  led0pwmval=0;

  }
  break;
  case 0x31:
  {
  led0pwmval=500;
  led0pwmval--;
  if(led0pwmval==0)
  led0pwmval=500;

  }
  break;
  }
这个思路不对。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

36

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
244
金钱
244
注册时间
2012-11-11
在线时间
14 小时
 楼主| 发表于 2012-12-7 19:33:21 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥那要怎么办呢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2012-12-7 21:01:17 | 显示全部楼层
可以判断USART_RX_BUF里面的数据,因为串口发送的数据,都是存在USART_RX_BUF里面。
当然更简单的方法,就是直接用我们的usmart了,什么都帮你做好了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-4-5
在线时间
0 小时
发表于 2014-4-30 01:51:49 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
我想用无线通信控制PWM,加入NRF24L01_Init()这个初始化函数,LED0灯就不亮了,猜主要是NRF24L01_Init()里的SPIx_Init()的原因。感觉和楼主的原因很相似,怎么破?
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-4-5
在线时间
0 小时
发表于 2014-4-30 03:20:03 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
我知道怎么回事了,PWM的TIM3通道2出口和SPII_MOSI重合了,换成通道4就可以了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-10 10:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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