OpenEdv-开源电子网

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

串口+PWM实验

[复制链接]

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
发表于 2011-9-16 16:35:48 | 显示全部楼层 |阅读模式

利用MiniSTM32开发板上资源和PWM实验、USART实验的例程,稍加修改实现了通过串口调试助手发送命令控制PWM占空比的目的,但是还是有一个问题不是很明白,为什么每次复位或上电后,第一次发送的命令不能够返回到串口调试助手中(不能显示"您发送的数据是:  ")?
注:发送命令1 PWM+100 发送命令2  PWM-100   程序内容如下:
 #include<stm32f10x_lib.h>
#include"sys.h"
#include"usart.h"
#include"delay.h"
#include"led.h"
#include"key.h"
#include"exti.h"
#include"timer.h"
int main(void)
{
 u16 led0pwmval=0;
 Stm32_Clock_Init(9);   //系统时钟设置
 delay_init(72);            //延时初始化
 LED_Init();                 //初始化与LED连接的硬件接口
 uart_init(72,9600);     //设置波特率 9600
 WM_Init(900,0);      //PWM频率 72000000/900=80KHZ
 while(1)
 {
  if(USART_RX_STA&0x80)
  {       
   printf("您发送的消息为:\n");
   USART1->DR=USART_RX_BUF[0];
   while((USART1->SR&0X40)==0);            //等待发送结束
   USART_RX_STA=0;                              //等待下次接收
   if(USART_RX_BUF[0]==49&&led0pwmval<300)    //字符1对应ASCII码为49
    led0pwmval+=100;
   if(USART_RX_BUF[0]==50&&led0pwmval>0)       //字符2对应ASCII码为50
    led0pwmval-=100;
   LED0_PWM_VAL=led0pwmval;
   printf("\nled0pwmval:%d\n",led0pwmval);
   if(led0pwmval>=300) 
    printf("pwm达到最大值,请输入2\n");
   if(led0pwmval==0) 
    printf("pwm达到最小值,请输入1\n");
   printf("请输入命令,1 pwm+100  2 pwm-100,以回车键结束\n\n");
  }
 }  
}


大家给点建议吧,谢谢!

 

事无巨细 循序渐进
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-9-16 16:47:12 | 显示全部楼层
我拿你的代码测试,没有出现你说的问题.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-9-16 16:52:38 | 显示全部楼层
 这是我的代码.

ALIENTEK MINISTM32 实验8 PWM输出实验.rar

27.65 KB, 下载次数: 307

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

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-9-16 16:53:21 | 显示全部楼层
 复位后第一次输入命令1的结果如下(没有发送回来我输入的命令):


事无巨细 循序渐进
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-9-16 17:02:40 | 显示全部楼层
同样的代码差别咋就这么大呢?
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

46

主题

284

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2011-6-20
在线时间
0 小时
发表于 2011-9-16 17:24:10 | 显示全部楼层
编译器的问题?
回复 支持 反对

使用道具 举报

14

主题

101

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
493
金钱
493
注册时间
2011-9-6
在线时间
3 小时
 楼主| 发表于 2011-9-18 12:45:08 | 显示全部楼层
我使用的是MDK3.80A,难道编译器编译的结果还和版本有关系吗? 不解中........
事无巨细 循序渐进
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-9-18 17:10:55 | 显示全部楼层
我也是3.80a.不过你注意一下不是文件夹和文件名相同,里面的代码就是一样的.我们有好几次更新,网上也很多我们的代码.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2018-1-16
在线时间
28 小时
发表于 2018-1-17 10:49:42 | 显示全部楼层
楼主,代码中#include <stm32f10x_lib.h>提示错误怎么办,新人求助
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 16:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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