与ARM7的蓝牙连接蓝牙LPC2148

蓝牙具有广泛的应用程序,例如数据传输,无线音乐,设备控制等。蓝牙在此类应用程序中使用的原因是其易于实施,低功耗,最重要的是它的可用性,即几乎所有手机(无论是所有手机)它可以简单的功能手机或高级智能手机)配备蓝牙。

基于ARM 7的LPC2148是成功且流行的32位微控制器之一。它具有许多芯片功能。但是今天,我们将专注于串行通信,即LPC2146 MCU的UART功能。

在此项目中,我们将与基于ARM 7的MCU(即LPC2148)接口蓝牙模块。在后来的项目中,我们将使用此界面并开发一些高级项目。

蓝牙模块的主要应用之一是在家庭自动化和智能家居系统领域中,在该领域中,启用蓝牙的设备(如智能手机或平板电脑)可用于控制智能家居应用程序。

电路原理图
与LPC2148电路连接蓝牙

需要组件

由于我们在该项目中使用了LPC2148开发委员会,因此上述某些组件可能已经嵌入到董事会中。实施项目所需的组件如下:

  • LPC2148基于微控制器的立场 - 单独或完整的开发委员会
  • HC - 05蓝牙模块(任何基于UART的蓝牙模块)
  • 8 X LED
  • 8 x1kΩ电阻
  • USB - 到 - 迷你USB电缆
  • 电源
  • 连接电线
  • 带有“蓝牙控制器”应用程序的智能手机

电路设计

使用LPC2148的蓝牙模块接口的电路设计涉及HC - 05蓝牙模块与基于ARM7的MCU LPC2148之间的连接。完整电路设计的详细信息如下。

HC - 05蓝牙模块是基于UART的设备。因此,LPC2148和蓝牙模块之间的连接仅需要两条线。在LPC2148中,有两个UART模块:UART 0和UART 1.我们的开发板中的UART 0已连接到USB到串行转换器。

因此,我们将蓝牙模块连接到UART 1,即端口0引脚P0.8(引脚33)和P0.9(引脚34)。蓝牙模块的TX引脚连接到LPC2148的RXD1(P0.9 - PIN 34)。同样,蓝牙模块的Rx引脚连接到LPC2148的TXD1(P0.8 - Pin 33)。

注意:蓝牙模块的TX和RX引脚只能耐受3.3V。由于LPC2148 MCU的输出仅为3.3V,因此可以直接进行连接。

蓝牙模块具有 - 板3.3V调节器。因此,可以将5V电源给予模块。

为了证明蓝牙模块 / LPC2148和智能手机之间的数据成功传输,我们打开和关闭了很少的LED。由于董事会已经由LED组成,因此我们没有连接任何其他LED。

在开发委员会上,LED连接到Port1 Pins P1.18至P1.25。因此,我们将按照这些引脚编写程序。

项目的工作

该项目成功地证明了蓝牙模块与LPC2148的接口。它涉及LPC2148的UART模块。因此,建议阅读我们的UART教程对于LPC2148 MCU。

如电路设计中所述,蓝牙模块连接到LPC2148中的UART 1模块。当成功将蓝牙模块与智能手机配对时,我们可以配置手机中的应用程序以传输所需的数据。

在程序中,配置为当蓝牙模块接收“ 0”时,根据电路图将打开的所有LED。同样,当收到“ 1”时,所有LED将被关闭。

因此,正确配置UART模块很重要。另外,PLL模块用于生成CCLK和PCLK。我们的ARM PLL教程中解释了PLL模块和其他相关信息的配置。

代码

了解程序

该项目的编程部分包括配置GPIO引脚,PLL0模块,UART1模块并控制LED。我们将看到如何单独配置这些模块。

首先是PLL0模块。PLL0模块配置为生成系统时钟,即60 MHz的CCLK。因此,我们将启用PLL0模块,并设置乘数和分隔值。为此,我们将使用以下命令。

PLL0CON = 0x01;

PLL0CFG = 0x24;

一旦设置了初始化和乘数和分隔值的PLL0模块,下一步就是修复这些乘数和分隔值。为此,我们将使用以下提要序列。

PLL0FEED = 0xAA;

PLL0FEED = 0x55;

现在,我们将在PLL0STAT寄存器的帮助下检查PLL0模块是否锁定到指定值,并且一旦锁定,我们将连接PLL模块。

while(!(pll0stat&0x00000400));

PLL0CON = 0x03;

写另一个供稿序列以锁定PLL0模块。现在,CCLK将以60 MHz振荡。

PLL0FEED = 0xAA;

PLL0FEED = 0x55;

最后,将外围时钟配置为复制系统时钟。

VPBDIV = 0x01;

我们要讨论的下一个模块是UART模块。如前所述,我们正在项目中使用UART1模块。

因此,第一步是使用Pinsel寄存器选择TX1和RX1引脚。

Pinsel0= 0x50000;

我们需要为数据传输设置UART框架格式。通过以下说明,我们将其设置为8个数据位,没有奇偶校验和1个停止位。

u1lcr = 3 |(1 << 7);

我们需要将波特率设置为9600桶。为此,将DLL和DLM值设置为如下。

u1dll = 110;

U1DLM = 1;

现在,为了更准确的波特率,设置了mulval和分裂值。

u1fdr =(mulval << 4)|Divaddval;

使用以下命令将所有值锁定。还启用了RX和TX FIFO用于数据传输和接收。

u1lcr&= 0x0f;

u1fcr = 0xc1;

有了这些命令,UART已成功设置,并准备接收和传输数据。下一步是读取接收到的数据并打开LED打开或关闭。

char c = uart1Read();

if(c ==‘0')

{

io1set = 0x03fc0000;

}

否则(c ==‘1')

{

io1clr = 0x03fc0000;

}

申请

  • 将蓝牙模块与微控制器接口具有许多优点和应用。最好的例子是在智能家庭系统和家庭自动化系统的领域。
  • 使用ARM7这样的强大处理器,可以将应用范围增加到工业,机器人和消费者等级应用。

发表评论

您的电子邮件地址不会被公开。

电子豪华粉丝
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map