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

   日期:2020-09-04     浏览:178    评论:0    
核心提示:本文将使用MSP430F5529单片机和 ESP8266 WIFI模块进行单片机和TCP服务器之间的通信。目录1. 步骤和技术简述(上)2. 网络环境搭建(上)3. 利用串口初始化单片机接入网络(上)4. 实现发送数据(下)前言上文我们使用了串口调试,实现了wifi 的初始化,并且完成了数据的传输,但要注意的是这个是通过串口进行WiFi模块操作,但是在实际情,我们要实现的往往是通过单片机的内部程序向外发送信息,那要怎么写呢?4.实现发送数据4.1 向单片机烧录如下代码代码的注释比较多,

本文将使用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;
}

其他常用的波特率设置

注意事项

在烧录代码时,注意上面的两个跳线帽一定要有,这个用于连接USB和单片机芯片的通信。在烧录代码时是不需要连接wifi模块的。

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: 点击一次发送多条数据是因为抖动,不是你的代码出了问题。

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

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服