求一段MSP430控制ESP8266使用入门教程的程序

网上找了一段MSP430和esp8266的程序,写进去后用串口助手查看没有任何显示是怎么回事 - MSP430技术论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
网上找了一段MSP430和esp8266的程序,写进去后用串口助手查看没有任何显示是怎么回事
等待验证会员
20:43:20  
#include &MSP430.h&
void UartRegCfg()
{
UCA0CTL1 |=UCSWRST;& && &//reset UART module,as well as enable UART module
UCA0CTL1 |=UCSSEL_2;& &&&//UART clock is SMCLK
UCA0BR0&&|=65;& && && &&&//Baud N=BCLK/rate,rate=9600,BCLK=SMCLK=8M
UCA0BR1&&|=3;
UCA0MCTL&&= UCBRS1;& && &//UCBRSx=2
UCA0CTL1 &=~UCSWRST;& &&&//UART reset end
}
void UartGpioCfg()
{
P1DIR&&|= BIT2;& && && && && &//P1.2&&UART_TX
P1DIR&&&=~BIT1;& && && && &//P1.2&&UART_RX
P1SEL&&|= BIT1+BIT2;& && &//select P1.1 and P1.2 as UART port
P1SEL2 |= BIT1+BIT2;
}
void UartInit()
{
UartRegCfg();
UartGpioCfg();
}
void UARTPutChar(unsigned&&char cTX)
{
UCA0TXBUF=cTX;
while (!(IFG2&UCA0TXIFG));&&//waiting UCA0TXBUF is empty
& & IFG2&=~UCA0TXIFG;& && && &&&//clear TX interrupt flag
}
int UARTGetChar(void)
{
int GetChar=0;
while (!(IFG2&UCA0RXIFG));&&//UCA1RXBUF has received a complete character
IFG2&=~UCA0RXIFG;& && && &&&//clear RX interrupt flag
//UCA0TXBUF=UCA0RXBUF;& && &&&//back to display
GetChar&&=UCA0RXBUF;
//while (!(IFG2&UCA0TXIFG));&&//waiting UCA0TXBUF is empty
//IFG2&=~UCA0TXIFG;& && && &&&//clear TX interrupt flag
return GetC
}
int UARTPutstring( char *str)
{
& &unsigned int uCount=0;
& &do
& &{
& & uCount++;
& & UARTPutChar(*str);
& &}
& &while(*++str!='\0');
& &UARTPutChar('\n');
& &return uC
}
void SysCtlClockInit()
{
& & DCOCTL=0;
& & BCSCTL1=CALBC1_16MHZ;
& & DCOCTL =CALDCO_16MHZ;
& & BCSCTL1|=DIVA_1;& & //ACLK =MCLK/2=8M
& & BCSCTL2|=DIVS_1;& & //SMCLK=MCLK/2=8M
}
复制代码#include &MSP430.h&
#include &XiaoDeng.h&
#include &G2 UT.h&
#define&&L0 0X30
#define&&L1 0X31
#define&&L2 0X32
#define&&L3 0X33
#define&&L4 0X34
#define&&L5 0X35
#define&&L6 0X36
#define&&L7 0X37
#define&&L8 0X38
#define&&L9 0X39
#define&&A1 0X41
#define&&T1 0X54
#define&&C1 0X43
#define&&I1&&0X49
#define&&P1 0X50
#define&&S1 0X53
#define&&R1 0X52
#define&&E1 0X45
#define&&O1 0x4F
#define&&N1 0X4E
#define&&D1 0X44
#define&&K1 0X4B
#define&&W1 0x57
char&&jeiSo();//接收数据
void delay(char a);
//char faSong();
unsigned char Re_buf[15];
unsigned char a[] = {L0,L1,L2,L3,L4,L5,L6,L7,L8,L9};
char cSh()//初始化Esp8266
{
while(P1 !=ldat)
{
& & & & ldat = UARTGetChar();
//& & & & sanSuo1();
}
delay(8);
sanSuo2();
UARTPutChar(A1);
UARTPutChar(T1);
UARTPutChar(0X2B);
UARTPutChar(C1);
UARTPutChar(I1);
UARTPutChar(P1);
UARTPutChar(S1);
UARTPutChar(T1);
UARTPutChar(A1);
UARTPutChar(R1);
UARTPutChar(T1);
UARTPutChar(0X3D);
UARTPutChar(0X22);
UARTPutChar(T1);
UARTPutChar(C1);
UARTPutChar(P1);
UARTPutChar(0X22);
UARTPutChar(0X2C);
UARTPutChar(0X22);
UARTPutChar(L1);
UARTPutChar(L9);
UARTPutChar(L2);
UARTPutChar(0X2E);
UARTPutChar(L1);
UARTPutChar(L6);
UARTPutChar(L8);
UARTPutChar(0X2E);
//UARTPutChar(L1);
//UARTPutChar(L9);
UARTPutChar(L1);
UARTPutChar(0X2E);
UARTPutChar(L1);
UARTPutChar(0X22);
UARTPutChar(0X2C);
UARTPutChar(L5);
UARTPutChar(L0);
UARTPutChar(L0);
UARTPutChar(L1);
UARTPutChar(0X0d);
UARTPutChar(0X0a);
//ldat = UARTGetChar();
//& & & & delay(90);
//& & & & sanSuo1();
while(K1!=ldat)
{
& & & & ldat=UARTGetChar();
}
delay(3);
sanSuo2();
return 1;
}
char faSong()//发送数据
{
& & & && & UARTPutChar(A1);
& & & && & UARTPutChar(T1);
& & & && & UARTPutChar(0X2B);
& & & && & UARTPutChar(C1);
& & & && & UARTPutChar(I1);
& & & && & UARTPutChar(P1);
& & & && & UARTPutChar(S1);
& & & && & UARTPutChar(E1);
& & & && & UARTPutChar(N1);
& & & && & UARTPutChar(D1);
& & & && & UARTPutChar(0X3D);
& & & && & UARTPutChar(L3);
& & & && & UARTPutChar(0X0d);
& & & && & UARTPutChar(0X0a);
& & & && & while(0x3E != ldat )
& & & && & {
& & & & & & & && & ldat = UARTGetChar();
//& & & & & & & && & sanSuo1();
& & & && & }
& & & && & delay(3);
& & & && & sanSuo2();
& & & & & & & & UARTPutChar(a[0]);
& & & & & & & & UARTPutChar(a[1]);
& & & & & & & & UARTPutChar(a[2]);
& & & & & & & & UARTPutChar(a[3]);
& & & & & & & & UARTPutChar(a[4]);
& & & & & & & & UARTPutChar(a[5]);
& & & & & & & & UARTPutChar(a[6]);
& & & & & & & & UARTPutChar(a[7]);
& & & & & & & & UARTPutChar(a[8]);
& & & & & & & & UARTPutChar(a[9]);
& & & && &&&while(K1 !=&&ldat)
& & & && &&&{
& & & && &&&ldat=UARTGetChar();
//& & & && &&&sanSuo1();
& & & && &&&}
& & & && &&&sanSuo2();
& &&&& & & & return 0;
}
char&&jeiSo()//接收数据
{
static& &unsigned char counter=0;
& & & & while(counter&14)
& & & & {
//& & & & & & & & sanSuo1();
& & & && &&&Re_buf[counter]=UARTGetChar();
& & & && && && &if(Re_buf[0] == 0x2B)
& & & && && && & {
& & & && && && &&&& & & & counter ++ ;
& & & && && && &&&}
& & & && && && &else
& & & && && && &{
& & & & & & & && && && &counter = 0;
& & & && && && & }
//& & & && && && &if(counter&14)
//& & & && && && &{
//& & & && && && && & & & counter = 0;
//& & & && && && &}
& & & & }
& & & && && &counter = 0;
& & & && && && &sanSuo2();
& & & && &&&& & & & return 1;
}
void delay(char a)
{
& & & & for(;a&0;a--)
& & & & {
& & & & __delay_cycles(1000000);
& & & &&&sanSuo2();
& & & & }
}
复制代码
#include &MSP430.h&
xiaoDengcsh()//小灯初始化
{
& & & & P1DIR |= BIT0+BIT6;
& & & & P1OUT &=~ BIT0+BIT6;
}
sanSuo1()//小灯闪烁1.0
{
unsigned char i=4;
for(i=4;i&0;i--)
{
& & & & P1OUT ^= BIT0;
& & & & __delay_cycles(100000);
}
}
sanSuo2()//小灯闪烁1.6
{
unsigned char i=4;
for(i=4;i&0;i--)
{
& & & & P1OUT ^= BIT6;
& & & & __delay_cycles(100000);
}
}复制代码
#include &MSP430.h&
#include &G2 UT.h&
#include &sjcl.h&
#include &XiaoDeng.h&
#define&&L0 0X30
#define&&L1 0X31
#define&&L2 0X32
#define&&L3 0X33
#define&&L4 0X34
#define&&L5 0X35
#define&&L6 0X36
#define&&L7 0X37
#define&&L8 0X38
#define&&L9 0X39
#define&&A1 0X41
#define&&T1 0X54
#define&&C1 0X43
#define&&I1&&0X49
#define&&P1 0X50
#define&&S1 0X53
#define&&R1 0X52
#define&&E1 0X45
#define&&N1 0X4E
#define&&D1 0X44
unsigned char T=1 , I;
void main(void)
{
&&WDTCTL = WDTPW + WDTHOLD;
&&SysCtlClockInit();
&&UartInit();
&&xiaoDengcsh();
&&cSh();
&&while(1)
{
& &faSong();
& &jeiSo();//接收数据
& &sanSuo2();
& & & & }
}复制代码代码有点长,原理是单片机向ESP8266发送AT指令,可是我用串口助手看什么都没发出去
已退回1积分
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司ESP8266+微信小程序连接流程 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
ESP8266+微信小程序连接流程
11:14:22  
WIFI接入网络这部分是单片机+ESP8266的组合,云服务器采用的是新浪云,手机部分是用的微信小程序。最后的成品是云控插排。我的邮箱:,我这里只为不会的新手提供一个思路没有详写,有问题可以联系我,具体见图。
esp8266的AT指令部分参考:
云服务器建立参考:
(19.6 KB, 下载次数: 10)
11:01 上传
(87.07 KB, 下载次数: 14)
11:06 上传
小程序界面1
(93.42 KB, 下载次数: 14)
11:07 上传
小程序界面2
(50.34 KB, 下载次数: 11)
11:07 上传
小程序逻辑层部分代码
(72.6 KB, 下载次数: 8)
11:07 上传
小程序渲染层部分代码
(468.07 KB, 下载次数: 12)
11:10 上传
14:47:09  
学习了!!!
21:34:58  
这个是不是类似于物联网& && && &&&
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司esp8266与单片机之间的通信需要协议吗? - 控制|传感 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
林超文手把手教你学!
教你1000种电路设计思路
张飞硬件电路之PFC全集
参与免费送VIP+原创视频
运放、ADC、电磁兼容
esp8266与单片机之间的通信需要协议吗?
16:24:25  
esp8266与单片机之间的通信需要协议吗? esp8266发送数据到网络上需要协议吗?
esp8266和单片机可以通过串口,发数据到网络协议是固定的,可以看我的帖子
高级工程师
16:24:26  
esp8266和单片机可以通过串口,发数据到网络协议是固定的,可以看我的帖子
18:15:22  
esp8266和单片机可以通过串口,发数据到网络协议是固定的,可以看我的帖子
你发了好多干货,我该看那一篇?
17:46:41  
esp8266和单片机可以通过串口,发数据到网络协议是固定的,可以看我的帖子
请问,esp8266模块跟服务器交互,需要服务器与esp8266模块连接到同一个WiFi下吗??
大神求解答,这对我很重要,,拜托,,多谢,,
助理工程师
08:34:18  
请问,esp8266模块跟服务器交互,需要服务器与esp8266模块连接到同一个WiFi下吗??
大神求解答,这对我很重要,,拜托,,多谢,,
这个功能可能需要第三方网站登录,或者设置同一网络环境,仔细看eps8266手册,上面都有。
林超文手把手教你学!
教你1000种电路设计思路
张飞硬件电路之PFC全集
参与免费送VIP+原创视频
运放、ADC、电磁兼容
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司用ESP8266的PWM功能,写了一个呼吸灯程序,为什么只执行一次(灯慢慢点亮,然后慢慢熄灭,然后就狂闪)
[问题点数:20分]
本版专家分:0
CSDN今日推荐
本版专家分:0
本版专家分:0
本版专家分:0
本版专家分:0
本版专家分:0
匿名用户不能发表回复!|
其他相关推荐后使用快捷导航没有帐号?
请完成以下验证码
查看: 2516|回复: 2
【Tiva C LaunchPad学习笔记】一步一步学会ESP8266(1)
在线时间21 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 32, 距离下一级还需 168 积分
一粒金砂(中级), 积分 32, 距离下一级还需 168 积分
本帖最后由 Zoro_ 于
16:15 编辑
此内容由EEWORLD论坛网友Zoro_原创,如需转载或用于商业用途需征得作者同意并注明出处
ESP8266是一个通过AT指令控制的WI-FI模块,做项目的时候使用还是很方便的,但是在调试的过程中遇到了很多不必要的麻烦,希望在这里分享经验,方便大家学习。
<font color="#.确认硬件:
ESP8266的版本一直在更新,而且不同厂家出的在管脚分布与外围电路上也会有一定差别,我买的ESP8266硬件连线图是这个样子:
ESP8266.png (11.69 KB, 下载次数: 0)
16:14 上传
连线方式:UTXD,GND,VCC,URXD 连上 USB-TTL(两者的 TXD 和RXD 交叉接),同时CH-PD 和 VCC要焊接到一起。
焊接完成后效果图:
ESP8266实际照片.JPG (920.63 KB, 下载次数: 1)
16:14 上传
2.通过串口与电脑连接:
首先要保证串口是ttl电平,然后与ESP8266通讯波特率应该是115200,发送指令的时候必须勾选发送新行,在连接后发送AT+RST即可收到模块返回的信息(如图)。
串口工具截图.png (49.66 KB, 下载次数: 1)
16:14 上传
3.开始调试:
在模块上电后,便可通过电脑或者手机搜索到一个WI-FI,通过发送指令: AT+ CWSAP= &ssid&,&pwd&,&chl&, &ecn&即可改变这个WI-FI的名称和密码,示例:AT+CWSAP=”TEST”,””,1,3(&ssid&:字符串参数,接入点名称& & &pwd&:字符串参数,密码最长64字节, ASCII& & &chl&:通道号& ecn &:0-OPEN, 1-WEP, 2-WPA_PSK, 3-WPA2_PSK, 4-WPA_WPA2_PSK)。图中TEXT即为模块释放的WI-FI。
QQ截图53.png (14.4 KB, 下载次数: 0)
16:14 上传
4.模块的ip与电脑的ip
通过最初设置的密码连接模块的WI-FI(如图),连接成功后模块和电脑便处于一个局域网中,同时模块会为电脑分配一个ip地址,通过向模块发送AT+CIFSR查看模块ip,通过发送AT+CWLIF查看已接入设备的ip(如图)。
QQ截图05.png (11.7 KB, 下载次数: 0)
16:14 上传
QQ截图04.png (6.09 KB, 下载次数: 4)
16:14 上传
5.模块作为客户端
打开网络助手,选择 TCP Server,输入电脑 ip地址,端口号随便设定(如图);
29.png (47.13 KB, 下载次数: 0)
16:14 上传
全部设定好之后,点打开按钮,即可进入监听状态;
此时向模块发送指令连接服务器即可,首先发送AT+CIPMUX=1(开启多地连接),然后发送AT+CIPSTART=2(可以选择0~4,连接id),&TCP&(建立TCP连接),&192.168.4.2&(服务器ip),8081(端口号)(如图)
QQ截图57.png (4.75 KB, 下载次数: 1)
16:14 上传
此时电脑上的服务器也会检测到模块(如图)
QQ截图56.png (36.66 KB, 下载次数: 1)
16:14 上传
此时通过串口发送指令就可以向服务器发送信息了,AT+CIPSEND=2(连接服务器时选择的id,必须和连接服务器时选择同一个id),8(要发送的字节数),发送指令后,收到“&”后发送消息即可(如图)。
QQ截图27.png (4.62 KB, 下载次数: 0)
16:14 上传
QQ截图43.png (37.69 KB, 下载次数: 0)
16:14 上传
发送了8bytes数据,串口工具勾选了发送新行,在123456后还有0x0a和0x0d。
【注】有些网络调试助手可能是没有办法正常工作的,所以模块没法连接电脑上的服务器,这就需要我们判断,是模块的问题,还是网络调试助手的问题:如果其他步骤都顺利进行却连接不上服务器的时候,可以使用windows自带的命令行,输入快捷键 【win+R】,然后输入CMD进入命令行,输入指令 ping 192.168.4.1(模块ip地址),如果模块有响应,说明是网络助手的问题,如果响应超时,就是模块的问题了。
QQ截图47.png (12.49 KB, 下载次数: 0)
16:14 上传
通过以上的分享,我们已经可以通过电脑与模块进行信息的交互,但是这仅仅是处于一个局域网里的俩个设备的交互,既然作为WI-FI模块,就必须通过互联网连接真正的服务器,在之后的分享中我会介绍如何连接互联网,以及最关键的如何通过Tiva C LaunchPad实现这些功能,最后还会为大家分享如何在Linux搭建一个简单的服务器,接收这些数据。
在线时间1075 小时
威望1350分
芯币3007枚
E金币620枚
TA的帖子TA的资源
纯净的硅(高级), 积分 1350, 距离下一级还需 650 积分
纯净的硅(高级), 积分 1350, 距离下一级还需 650 积分
在线时间0 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 6, 距离下一级还需 194 积分
一粒金砂(中级), 积分 6, 距离下一级还需 194 积分
挺好的,总结的
小店 https://shop.taobao.com/
主营 Esp8266初级教程、源码等,适用于菜鸟
EEWORLD 官方微信
Powered by}

我要回帖

更多关于 【原创】ESP8266 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信