OpenEdv-开源电子网

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

通过战舰开发板演奏音乐实验中的一些问题

[复制链接]

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2014-10-30
在线时间
1 小时
发表于 2014-12-25 18:18:25 | 显示全部楼层 |阅读模式
5金钱
http://www.openedv.com/posts/list/0/38508.htm  通过战舰开发板演奏音乐实验中,我将main.c里面sound函数由
void sound(u16 k)
{
 u16 x;
 x=music_data[k][0];   //读取音阶数据
 if(x!=0)
 {
  x=4000000/x;     //计算计数值
  TIM4->ARR = x;    //计数值写入重装载寄存器
   GPIOB->CRH&=0XFFFFFFF0;
   GPIOB->CRH|=0X0000000B; //PB.8复用推挽输出
  TIM_Cmd(TIM4, ENABLE); //开声音
 }
 else
 {
  TIM_Cmd(TIM4, DISABLE);  //关声音disenable
   GPIOB->CRH&=0XFFFFFFF0;
   GPIOB->CRH|=0X00000003;  //PB.8推挽输出
  Bout(8)=0;        ////停止时蜂鸣器管脚低电平
 }
}
改为了

void sound(u16 k)
{
extern TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
u16 x;
x=music_data[k][0];
if(x!=0)
{
x=4000000/x;
TIM_TimeBaseStructure.TIM_Period = x;
TIM_TimeBaseStructure.TIM_Prescaler =9;
TIM_TimeBaseStructure.TIM_ClockDivision = 0; 
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
TIM_Cmd(TIM4, ENABLE);
}
else
{
TIM_Cmd(TIM4, DISABLE);
  GPIOB->CRH&=0XFFFFFFF0;
  GPIOB->CRH|=0X00000003;
PBout(8)=0; 
}
}
所改部分如上面橙色部分所示,但是改了以后程序就出问题了,能不能请各位大神解释解释这是为什么,谢谢!

最佳答案

查看完整内容[请看2#楼]

说明定时器被你配置乱了。 找问题要学会仿真找问题。 先用好的,软件仿真,断点设置在: TIM_Cmd(TIM4, ENABLE); //开声音 之后,看看TIM4寄存器的配置状态,截图,保存起来。 然后再用你自己改过的,同样断点设置在这个位置。 再看此时的TIM4寄存器状态,然后和你之前的截图对比,看看哪里不一样,问题就找到了。 然后就好好去分析初始化流程。 所以,好学会找问题的办法,胜过提1w个问题。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-25 18:18:26 | 显示全部楼层
说明定时器被你配置乱了。
找问题要学会仿真找问题。
先用好的,软件仿真,断点设置在:
TIM_Cmd(TIM4, ENABLE); //开声音
之后,看看TIM4寄存器的配置状态,截图,保存起来。
然后再用你自己改过的,同样断点设置在这个位置。
再看此时的TIM4寄存器状态,然后和你之前的截图对比,看看哪里不一样,问题就找到了。

然后就好好去分析初始化流程。

所以,好学会找问题的办法,胜过提1w个问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2014-10-30
在线时间
1 小时
 楼主| 发表于 2014-12-25 23:20:22 | 显示全部楼层
好的,谢谢原子哥提醒,我是有点急于求成了,无论如何通过仿真自己找问题才是最重要的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-27 16:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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