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

tech2022-11-26  92

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

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

最新回复(0)