MSP430 DM430-A开发板学习笔记(二)MSP430f149与hc06蓝牙模块的使用

1.MSP430f149与hc06蓝牙模块的连接

1.1hc06蓝牙模块

hc06蓝牙模块可以直接在淘宝上购买,去官方店买比较好,资料比较全
hc06蓝牙与各种单片机的连接情况如下

因为msp430的供电也是3.3v,所以hc06蓝牙模块可以用msp430开发板上的vcc和gnd来对其进行供电和共地

然后要注意的是msp430f149的串口TXD 和 RXD 分别是p3.4和p3.5,这里的具体分析可以参考以下文章

MSP430F149串口收发程序详解

1.2单片机模块

单片机所用的编程软件为IAR,所用的下载器为BSL,这些都在我的以下文章的评论区中有下载链接
MSP430 DM430-A开发板学习笔记(一)IAR软件的使用

1.3单片机与hc06实物连接图

2.IAR代码

把我下面写的config.h和main.c文件放入到你们的工程中即可

2.1Config.h

#define CPU_F ((double)8000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) #define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long/*当BRCLK=CPU_F时用下面的公式可以计算,否则要根据设置加入分频系数*/
#define baud           9600                                //设置波特率的大小
#define baud_setting   (uint)((ulong)CPU_F/((ulong)baud))  //波特率计算公式
#define baud_h         (uchar)(baud_setting>>8)            //提取高位
#define baud_l         (uchar)(baud_setting)               //低位#define LED8PORT        P2OUT                   //P2接8个LED灯
#define LED8SEL         P2SEL                   //P2接8个LED灯
#define LED8DIR         P2DIR                   //P2接8个LED灯#define DATAPORT P4OUT                   //数据口所在端口P4
#define DATASEL         P4SEL                   //数据口功能寄存器,控制功能模式
#define DATADIR         P4DIR                   //数据口方向寄存器#define CTRPORT           P6OUT                   //控制线所在的端口P6
#define CTRSEL          P6SEL                   //控制口功能寄存器,控制功能模式
#define CTRDIR          P6DIR                   //控制口方向寄存器#define DCTR0         P6OUT &= ~BIT4          //数码管段控制位信号置低
#define DCTR1           P6OUT |=  BIT4          //数码管段控制位信号置高
#define WCTR0           P6OUT &= ~BIT3          //数码管位控制位信号置低
#define WCTR1           P6OUT |=  BIT3          //数码管位控制位信号置高//***********************************************************************
//          共阴数码管显示的断码表
//***********************************************************************uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//***********************************************************************
//                   系统时钟初始化
//***********************************************************************
void Clock_Init()
{uchar i;BCSCTL1&=~XT2OFF;                 //打开XT2振荡器BCSCTL2|=SELM1+SELS;              //MCLK为8MHZ,SMCLK为8MHZdo{IFG1&=~OFIFG;                   //清楚振荡器错误标志for(i=0;i<100;i++)_NOP();}while((IFG1&OFIFG)!=0);           //如果标志位1,则继续循环等待IFG1&=~OFIFG;
}
//***********************************************************************
//               MSP430内部看门狗初始化
//***********************************************************************
void WDT_Init()
{WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗
}//***********************************************************************
//      关闭数码管
//***********************************************************************
void Close_LED()
{DATASEL  = 0x00;                      //设置IO口为普通I/O模式,此句可省DATADIR  = 0xFF;                      //设置IO口方向为输出DATAPORT = 0xFF;                      //P4口初始设置为FFCTRSEL  =  0x00;                      //设置IO口为普通I/O模式,此句可省CTRDIR |=  BIT3 + BIT4;               //设置IO口方向为输出,控制口在P63,P64CTRPORT =  0xFF;                      //P6口初始设置为FF  DCTR1;                                //关掉数码管,以免显示乱码                   WCTR1;                     DATAPORT=0xFF;                        //关数码管            WCTR0;
}

2.2main.c

/********************************************************************
//DM430-A型开发板串口接收发送程序,使用单片机的串口0,显示操作通过串口调试助手
//通过电脑与串口线连接开发板串口座,使用串口调试助手发送数据到开发板板
//开发板板会将收到的数据再发送到串口调试助手,接收采用中断模块,发送用查询
//板载的BSL模块可以通过跳线帽设置为USB转串口模式,笔记本电脑没有串口可以直接代替
//开发板的BSL区的RXD和TXD0连接,TXD和RXD0连接即可
//注意使用BSL模块作为USB转串口功能的时候,RTS和TCK跳线帽、DTR和RESET跳线帽要断开
//波特率更改请通过config.h文件,直接更改baud参数即可
//调试环境:EW430 V5.30
********************************************************************/#include <msp430x14x.h>
#include "Config.h"                     //开发板配置头文件,主要配置IO端口信息uchar control;//***********************************************************************
//               MSP430IO口初始化
//***********************************************************************
void Port_Init()
{LED8SEL  = 0x00;                      //设置IO口为普通I/O模式,此句可省LED8DIR  = 0xFF;                      //设置IO口方向为输出LED8PORT = 0xFF;                      //P2口初始设置为FFDATASEL  = 0x00;                      //设置IO口为普通I/O模式,此句可省DATADIR  = 0xFF;                      //设置IO口方向为输出DATAPORT = 0xFF;                      //P4口初始设置为FFCTRSEL  =  0x00;                      //设置IO口为普通I/O模式,此句可省CTRDIR |=  BIT3 + BIT4;               //设置IO口方向为输出,控制口在P63,P64CTRPORT =  0xFF;                      //P6口初始设置为FF
}//*************************************************************************
//               MSP430串口初始化
//*************************************************************************
void UART_Init()
{U0CTL|=SWRST + CHAR;                //复位SWRST,8位数据模式U0TCTL|=SSEL1;                      //SMCLK为串口时钟U0BR1=baud_h;                       //BRCLK=8MHZ,Baud=BRCLK/N,低位U0BR0=baud_l;                       //N=UBR+(UxMCTL)/8,高位U0MCTL=0x00;                        //微调寄存器为0,波特率9600bpsME1|=UTXE0;                         //UART0发送使能ME1|=URXE0;                         //UART0接收使能U0CTL&=~SWRST;                      //对SWRST进行清零,表示设置已经完成IE1|=URXIE0;                        //接收中断使能位,采用发送查询,接收中断,当接收到数据的时候触发中断,将数据存储到buffer缓存器中P3SEL|= BIT4 + BIT5;                //设置IO口为第二功能模式,启用UART功能P3DIR|= BIT4;                       //P3.4为TXD,设置TXD0口方向为输出
}//*************************************************************************
//              串口0发送数据函数
//*************************************************************************void Send_Byte(uchar data)
{while(!(IFG1&UTXIFG0));          //发送寄存器空的时候发送数据U0TXBUF=data;
}//*************************************************************************
//              串口0发送字符串函数
//*************************************************************************
void Print_Str(uchar *s)
{while(*s != '\0'){Send_Byte(*s++);}
}//*************************************************************************
//               处理来自串口0的接收中断
//*************************************************************************#pragma vector=UART0RX_VECTOR
__interrupt void UART0_RX_ISR(void)
{//uchar data=0;control = U0RXBUF;                       //接收到的数据存起来Send_Byte(control);                    //将接收到的数据再发送出去
}//*************************************************************************
//           主函数
//*************************************************************************
void main(void)
{ WDT_Init();                         //看门狗设置Clock_Init();                       //系统时钟设置UART_Init();                        //串口设置初始化Close_LED();                        //关闭数码管显示Print_Str("I AM READY\n");             //发送字符串测试_EINT();                            //开中断P2SEL = 0x00; //p2都设置为io口输出P2DIR = 0x03;//设置p2.0 p2.1为输出while(1)                            //无限循环{if(control=='1'){P2OUT = 0x01;//设置p2.0为输出高电平}if(control=='2'){P2OUT = 0x02;//设置p2.1为输出高电平}if(control=='3'){P2OUT = 0x00;//设置p2.0 p2.1为输出低电平}}
}

3.手机app

手机app可以搜 蓝牙串口app就行
打开手机蓝牙>连接我们的蓝牙模块(蓝牙模块可以自己改名字 这一块你在淘宝上买了模块后 自己在电脑上进行检查模块好坏的时候 可以自行操作设置)>发送数据>hc06蓝牙模块会接收到信息并把数据传给单片机进行处理
效果图如下,
发送1 设置p2.0为输出高电平 灯亮
发送2 设置p2.1为输出高电平 灯亮
发送3 设置p2.0 p2.1为输出低电平 灯灭

MSP430 DM430-A开发板学习笔记(二)MSP430f149与hc06蓝牙模块的使用相关推荐

  1. 华清远见fs4412开发板学习笔记(二)

    fs4412开发板学习笔记(二) Linux 1.终端操作 1)打开终端 ctrl + alt + t 2)放大 ctrl + shift + "+" 3)缩小 ctrl + &q ...

  2. 阿里云HaaS100物联网开发板学习笔记(二)硬件控制初步--让小灯闪烁起来

    摘要:无论是哪种开发板,要想开发特定的功能,必先从GPIO开始,HaaS100开发也是一样.如果仅仅利用HaaS100的联网功能,那简直是太浪费了.HaaS100拥有其他开发板所具备的所有的功能,比如 ...

  3. HaaS600物联网开发板学习笔记(二)---轻应用方式让LED闪烁起来

    摘要:轻应用开发非常方便快捷,gitee上的例程也都是基于HaaS600的,所以,拿HaaS600来逐个测试例程,学习轻应用开发和物联网应用是最合适的.本文介绍一下HaaS600如何使用轻应用来开发. ...

  4. 阿里云HaaS100物联网开发板学习笔记(六)做个智能灯---一个完整的开发例子

    摘要:本篇文章将前期几个专题综合起来,基于阿里云HaaS100的新固件设计制作一个智能灯.这个智能灯由云平台.手机APP端和设备端组成,基本上涵盖了一个物联网小项目所需的主要步骤. 目录 1.在阿里云 ...

  5. 阿里云HaaS100物联网开发板学习笔记(三)轻应用初步--用js让小灯闪烁起来

    摘要:能让JavaScript应用运行在haas100开发板上,这实在是太酷了,这种方式被阿里云称之为"轻应用".本文带各位从零开始,先了解啥是轻应用,然后搭建环境,再一步步将一个 ...

  6. 涂鸦LZ201-CN开发板学习笔记(一)

    涂鸦LZ201-CN开发板学习笔记(一) 前言 一.引出 二.准备流程 1.购买开发板 2.创建产品 (1)创建产品 (2)功能定义 (3)设备交互 (4)硬件开发 3.检查开发板 第一步: 第二步: ...

  7. 华清远见fs4412开发板学习笔记(五)

    fs4412开发板学习笔记(五) 作业1: 输入10个整数,按从小到大的顺序输出(选择排序) 每轮排序在未排序的集合中找到(最小/最大),将找到的数与未排序的 第一个数交换位置. 5 4 3 2 1 ...

  8. 华清远见fs4412开发板学习笔记(四)

    fs4412开发板学习笔记(四) 今天的课程安排 1.复习 1.1 VIM 编辑器 [1] vim + filename 打开 [2] 工作模式 命令模式 编辑模式 底行模式 [3] 模式切换 命令- ...

  9. 阿里云HaaS100物联网开发板学习笔记(四)轻应用初步--用javascript连接阿里云物联网平台

    摘要:本篇文章讲解如何使用JavaScript"轻应用"连接阿里云物联网平台并上报一个数据.仍然延续前几篇文章的结构,从安装软件环境开始讲,以使零基础的同学看了本篇文章之后,也能够 ...

  10. iTOP-RK3568开发板学习笔记(1)编译+烧录系统

    迅为 RK3568 开发板学习笔记 文章目录 准备开发环境 复制 Linux SDK 编译 Buildroot 烧录固件 准备开发环境 将 ITOP-RK3568 资料包中的虚拟机开发环境解压到自己的 ...

最新文章

  1. 深入理解SET NAMES和mysql(i)_set_charset的区别
  2. 2021年了,`IEnumerator`、`IEnumerable`接口还傻傻分不清楚?
  3. pytorch list转tensor_点赞收藏:PyTorch常用代码段整理合集
  4. mysql 改成宽松模式_mysql5.6 sql_mode设置为宽松模式
  5. kettle连接数据mysql查_Kettle连接MySQL报错的解决方法
  6. 《MFC游戏开发》笔记二 建立工程、调整窗口
  7. 分布式大数据引擎Presto和Apache Spark
  8. DPDK QOS 3 -- rte meter令牌桶的实现
  9. 【Spark】SparkSQL练习--出租车数据清洗
  10. EM算法原理解释及公式推导
  11. 深度搜索解决数独游戏
  12. 视频点播播放器如何实现加密下载?
  13. Leetcode 476. Number Complement 补数 解题报告
  14. java地址簿管理系统
  15. python---引用其他py文件中的函数
  16. 学习大数据:Java基础篇之反射
  17. 2023年全国最新会计专业技术资格精选真题及答案20
  18. Unity VideoPlayer播放切换视频卡上一帧问题
  19. 做了两个1~24V 可调电源。USB充电。
  20. 车载网络硬件在环测试系统 ETest-DEV

热门文章

  1. GIT原理,知其然,知其所以然
  2. 第5章、解析Hello,world!知其然,更要知其所以然(从零开始学Android)
  3. 文件服务器 软件 开源,5个优秀的开源文件共享软件包 | MOS86
  4. Chrome浏览器的便捷使用方式
  5. android自动化 模拟器,Android模拟器入门[转]
  6. PMBOK(第五版)学习笔记 —— 3 项目管理过程
  7. 手机识别图片文字的方法
  8. 使用内网穿透实现外网访问内网地址
  9. 深度内幕丨揭秘积分墙最新反作弊
  10. 磁盘管理高级进阶-LVM逻辑卷管理