b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

开源蓝牙协议栈_蓝牙 协议栈 开发_蓝牙协议栈详解(4)

电脑杂谈  发布时间:2017-02-11 05:12:34  来源:网络整理

void Delay1ms(unsigned int uiDelay)

{

unsigned int i;

for ( ; uiDelay > 0; uiDelay--)

{

/* 大约延时1ms */

for (i = 0; i <320; i++);

}

}

/* end file */

主函数其实也很简单:

int main(void)

{

/* 控制LED灯闪烁 */

unsigned char i;

/* 驱动无源蜂鸣器 */

unsigned int j;

/* 将P1.0、P1.1设置为IO口 */

P1SEL &= ~0x03;

/* 将P1.0、P1.1设置为IO口的输出 */

P1DIR |= 0x03;

/* 将P2.0设置为IO口 */

P2SEL &= ~0x01;

/* 将P2.0设置为IO口输出 */

P2DIR |= 0x01;

/* 主循环 */

while(1)

{

蓝牙协议栈详解_开源蓝牙协议栈_蓝牙 协议栈 开发

/* LED1,LED2闪烁10次 */

for (i = 0; i <10; i++)

{

/* P1.0----LED2,P1.1----LED1 */

/* P1.0,P1.1输出高电平,即点亮LED2,LED1 */

/* FC : 1111 1100*/

P1 = (P1 & 0xFC) | 0x03;

Delay1ms(1000);

/* P1.0,P1.1输出低电平,即熄灭LED2,LED1 */

/* FC : 1111 1100*/

P1 = (P1 & 0xFC) & (~0x03);

Delay1ms(1000);

}

/* 给出500HZ的方波驱动 */

for(j = 0; j <1000; j++)

{

/* P2.0----蜂鸣器 */

P2 = (P2 & 0xFE) & (~0x01);

Delay1ms(1);

P2 = (P2 & 0xFE) | 0x01;

Delay1ms(1);

}

}

}

/* end file */

这里需要注意的是,MT254X蓝牙4.0开发板使用的无源蜂鸣器,那么我们需要产生一个方波来驱动。如这代码:

/* 给出500HZ的方波驱动 */

for(j = 0; j <1000; j++)

{

/* P2.0----蜂鸣器 */

P2 = (P2 & 0xFE) & (~0x01);

Delay1ms(1);

P2 = (P2 & 0xFE) | 0x01;

Delay1ms(1);

}

如果是有缘蜂鸣器,则没有那么麻烦,直接给出低电平驱动。为什么是低电平,我们看下原理图:

使用的PNP三极管,并且使用续流二极管保护蜂鸣器。

第五节 LCD12864显示

上一节我们成功控制了LED和蜂鸣器,这一节我们马不停蹄接着LCD12864的控制。

为了系统能够稳定的工作,首先我们将系统时钟切换到32M的外部晶振,为了自由配置所需要的时钟,主要借助于CLKCONCMD.OSC选择系统主时钟,而借助于CLKCONCMD.OSC32K则用于选择芯片32K时钟源!而低功耗模式设置时,需要借助于SLEEPCMD寄存器,在《CC253x- CC2540-41Applications User‘s Guide.pdf>中并没有说明SLEEPCMD第二位功能,如下所示:

但是参考cc2430芯片的说明书可以发现,对应的SLEEP寄存器则有说明,如下所示,这个是TI有意隐藏芯片细节,当SLEEPCMD.OSC_PD为0时,32MHz晶振与16MHz RC振荡器都会起振:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-31732-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 苗宇
      苗宇

      不要一天都在自己近海训练

    每日福利
    热点图片
    拼命载入中...