完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
软件准备
根据树莓的介绍,我们基于树莓派 pico 可以开发类开发官网环境 关于环境的好参考,国内有很多人问了,我已经在韦东山百网问了出的教程的开发环境: 硬件准备 在硬件开始实验前,需要准备好看看到硬件 连接 uart0我的串口模块PC连接显示,所以我从uart1开始使用,uart1给ESP8266使用。 [ tr 想要ESP8266[图片/tr]
C/C++实现代码 /** * * * SPDX-License-Identifier: BSD-3-Clause */ #include #include #include #include "pico/stdlib.h" #include "pico/multicore.h" #include "hardware/gpio.h" #include "hardware/uart.h" #define UART_ID uart1 #define BAUD_RATE 115200 #define UART_TX_PIN 4 #define UART_RX_PIN 5 #define RECV_BUFFER 256 char recv_buf[RECV_BUFFER]; int buff_count = 0; 无效 core1_entry() { memset(recv_buf,'0',RECV_BUFFER); //printf("%c", uart_getc(UART_ID)); recv_buf[buff_count++] = uart_getc(UART_ID); if(buff_count >= RECV_BUFFER) buff_count = 0; } } int main() { stdio_init_all(); // 以所需的速度设置我们的 UART。 UART_init(UART_ID,波特率); // 使用 GPIO 上的功能选择设置 TX 和 RX 引脚 // 设置数据表以获取有关功能选择的更多信息 gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART); gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART); multicore_launch_core1(core1_entry); printf("在 ESP8266 上设置网络...n"); printf(" - 将 CWMODE 设置为 1 站模式...n"); uart_puts(UART_ID, "AT+CWMODE=1rn"); 睡眠毫秒(2000); printf(" - 加入 Wifi ...'n"); uart_puts(UART_ID, "AT+CWJAP="baiwenwang","www.100ask.org"rn"); 睡眠毫秒(5000); printf("完成!nn"); printf("在 ESP8266 上启动 Webserver 端口...n"); 睡眠毫秒(1000); printf(" - 为多个连接设置 CIPMUX...n"); uart_puts(UART_ID, "AT+CIPMUX=1rn"); 睡眠毫秒(2000); printf(" - 在端口 80 上启动 CIPSERVER...n"); uart_puts(UART_ID, "AT+CIPSERVER=1,80rn"); printf("完成!nn"); 睡眠毫秒(1000); // 查询本地IP地址 uart_puts(UART_ID, "AT+CIFSRrn"); 睡眠毫秒(1000); printf("%sn", recv_buf); printf("等待连接...n"); while (true) { if (strstr(recv_buf, "+IPD")) { printf("!传入连接 - 发送网页"); uart_puts(UART_ID, "AT+CIPSEND=0,108rn"); // 发送一个 HTTP 响应,然后是一个网页作为字节,108 是您发送的字节数,如果您更改在 sleep_ms(1000) 以下发送的数据,请更改此值; uart_puts(UART_ID, "HTTP/1.1 200 OKrn"); uart_puts(UART_ID, "内容类型: text/htmlrn"); UART_puts(UART_ID, uart_puts(UART_ID, "rn"); uart_puts(UART_ID, "rn"); uart_puts(UART_ID, "rn"); uart_puts(UART_ID, "它有效!rn"); uart_puts(UART_ID, "rn"); 睡眠毫秒(1000); uart_puts(UART_ID, "AT+CIPCLOSE=0rn"); // 完成后关闭连接。 睡眠毫秒(4000); printf("nn等待连接...n"); 睡眠毫秒(250); memset(recv_buf,'0',RECV_BUFFER); buff_count = 0; 实验现象 CW0+AP的命令模式AT=: AT+1 AT+="baiwenwang","www.10ask.org" + CIPMUX=1 AT+CIPSERVER=1,80 AT+CIFSR AT+CIPSEND=0,108 > HTTP/1.1 200 OK Content-Type: text/html Connection: close It Works!324 |
|
|
|
只有小组成员才能发言,加入小组>>
3318 浏览 9 评论
2995 浏览 16 评论
3494 浏览 1 评论
9063 浏览 16 评论
4088 浏览 18 评论
1183浏览 3评论
609浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
601浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2336浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1897浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 02:13 , Processed in 1.151906 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号