MSP430使用wifi模块发送数据(下,发送数据)

本文将使用MSP430F5529单片机和 ESP8266 WIFI模块进行单片机和TCP服务器之间的通信。

目录

1. 步骤和技术简述(上)
2. 网络环境搭建(上)
3. 利用串口初始化WiFi模块接入网络(上)
4. 实现发送数据(下)

前言

上文我们使用了串口调试,实现了wifi 的初始化,并且完成了数据的传输,但要注意的是这个是通过串口进行WiFi模块操作,但是在实际情况,我们要实现的往往是通过单片机的内部程序向外发送信息,那要怎么写呢?

4.实现发送数据

4.1 向单片机烧录如下代码

代码的注释比较多,大体上就是初始化一下数据传输端口,设置波特率为115200,然后设置一个开关事件(中断),当按下开关以后,向手机(tcp服务器)发送信息。

#include <msp430f5529.h>

#define uchar unsigned char

uchar buffer[] = {"hello world\n"};

// 启用通信接口, 波特率设置为115200,与wifi模块的要求相同
void setUart(){
  P4SEL = BIT4 +BIT5;           // 设置 4.4 和 4.5 为输出位
  UCA1CTL1 |= UCSWRST;          // **Put state machine in reset**
  UCA1CTL1 |= UCSSEL_2;         // CLK = SMCLK   MCLK = SMCLK = default DCO = 32 x ACLK = 1048576Hz
  UCA1BR0 = 0x09;               // 1048576/115200 = ~9.10 (see User's Guide)
  UCA1BR1 = 0x00;               
  UCA1MCTL = UCBRS_1+UCBRF_0;   // Modulation UCBRSx=3, UCBRFx=0
  UCA1CTL1 &= ~UCSWRST;         // **Initialize USCI state machine**
}

// 输出字符串
void uartPrint(uchar code[], int len){
  unsigned int i;
  for(i=0; i<len; i++){
    UCA1TXBUF = code[i];
    while (!(UCA1IFG&UCTXIFG)); 
  }
}

// 主程序
void main(void)
{
  // 停止看门狗
  WDTCTL=WDTPW+WDTHOLD;
  // 对于2.1的设置是为了使用按钮
  // 设置2.1为输入位, 接上拉电阻, 设置初始值为高电平
  P2DIR &=~ BIT1; P2REN |= BIT1; P2OUT |= BIT1;
  // 允许2.1触发中断, 中断标志位复位,设置中断
  P2IES &=~ BIT1; P2IFG &=~ BIT1; P2IE |= BIT1;
  // 初始化输出设置
  setUart();
  // CPU休息,GIE:打开全局中断使能
  __bis_SR_register(LPM0_bits +GIE);
  // 停止操作指令
  __no_operation();
}

// 进入中断
#pragma vector = PORT2_VECTOR
__interrupt void Port_2(void)
{
  // 发一条数据
  uartPrint(buffer, sizeof(buffer));
  // 清除标志位
  P2IFG &=~ BIT1;
}

其他常用的波特率设置
在这里插入图片描述

4.2 使用串口调试,初始化网络

在这一步中,和上篇的测试相同,目的是完成wifi模块和TCP服务的连接。

4.2.1连线

在这里插入图片描述

4.2.2 输出初始化命令

依次输入以下命令(点击上篇了解更多),加深的地方是你要更改的。

1) 设置 WIFI 模式:

AT+CWMODE=1

2) 重启生效

AT+RST

3) 连接路由器

AT+CWJAP=“ALIENTEK”, “15902020353

4) 查询模块 IP

AT+CIFSR

5) 模块连接到 server

AT+CIPSTART=“TCP”,“192.168.1.115”,8080

6) 开启透传模式

AT+CIPMODE=1

7) 开始透传

AT+CIPSEND

看到下面的ok > 就证明连接正常

现在发送数据就可以互相接收到了。
ps: 进入数据传输模式以后,输入“+++”, (这句话不要带“发送新行”,其他的命令要带),就可以停止数据传输了。

4.2.3 使用单片机发送信息。

连线

在这里插入图片描述
将左侧开发版上的连接的黄线端和蓝线端位置跟换,单片机的输出和wifi模块的输入连接,单片机的输入和wifi模块的输出连接,目的是断开USB和wifi模块的连接,转为单片机和WiFi模块直接连接。
注意: 其他的线都不用动,保证WiFi模块一直供电。

做到这一步,MSP430使用wifi模块发送数据就完成了,点击一下黄色按钮,数据就来了!
在这里插入图片描述
效果
在这里插入图片描述
ps1: 中文要使用GBK编码才能正常显示
ps2: 点击一次发送多条数据是因为抖动,不是你的代码出了问题。

如果能帮助到你,不妨点个赞吧,谢谢。

posted @ 2020-09-03 14:12  世幻水  阅读(318)  评论(0编辑  收藏  举报