中移M5311-NBIOT-OPENCPU开发-HTTP串口收发器

实现功能:单片机串口发送HTTP-GET请求给M5311,M5311发送HTTP请求,接受返回数据,M5311串口发送回单片机

opencpu_uart_demo.c

#include "m5311_opencpu.h"#define OPENCPU_MAIN_UART HAL_UART_1unsigned char uart_cmd = 0;char buffer[300];char *pbuf;//uart中断回调函数
static void user_uart_callback(hal_uart_callback_event_t status, void *user_data){pbuf = buffer;int temp1;if(status == HAL_UART_EVENT_READY_TO_READ){memset(buffer,0,300);temp1 = opencpu_uart_receive(OPENCPU_MAIN_UART, pbuf, 300);uart_cmd = 'f';}
}/*打印函数
*/
void opencpu_printf (const char *str, ...){static unsigned char s[600]; //This needs to be large enough to store the string TODO Change magic numberint i,j;unsigned char *p;va_list args;int str_len;if ((str == NULL) || (strlen(str) == 0)){return;}va_start (args, str);str_len = (unsigned int)vsprintf ((char*)s, str, args);va_end (args);p =s;while(str_len > 0){j = opencpu_uart_send(OPENCPU_MAIN_UART, p, str_len);p=p+j;str_len = str_len - j;}
}
void custom_uart_init(void)
{opencpu_uart_open(OPENCPU_MAIN_UART,HAL_UART_BAUDRATE_115200,user_uart_callback);
}

m5311_opencpu.c

#include "m5311_opencpu.h"extern unsigned int OC_DEBUG_CHANNEL;void send_http_data(){char* url;url = "";char *name = (char *) malloc(strlen(url) + strlen(pbuf));sprintf(name, "%s%s", url, pbuf);httpclient_t client = {0};httpclient_data_t client_data = {0};char *buf = NULL;buf = pvPortMalloc(600);if (buf == NULL) {opencpu_printf("Malloc failed.\r\n");return;}memset(buf, 0, sizeof(buf));client_data.response_buf = buf;  client.timeout_in_sec = 20;client_data.response_buf_len = 600;oc_httpclient_get(&client, name, &client_data);opencpu_printf("%s\r\n",client_data.response_buf);}void test_all_in_one(){custom_uart_init();opencpu_lock_light_sleep();         // 禁止进入休眠//获取网络注册状态,并阻塞等待网络注册成功while(opencpu_cgact()!=1){vTaskDelay(10);}opencpu_printf("networkSuccess\n");uart_cmd = 0;while(1){if(uart_cmd == 'f'){uart_cmd = 0;//opencpu_printf("data:%s \r\n",pbuf);send_http_data();}vTaskDelay(10);}
}//opencpu主任务函数
void opencpu_task_main()
{test_all_in_one();vTaskDelete(NULL);
}/*新建opencpu任务,这个函数用户不可更改
*/
void test_opencpu_start()
{xTaskCreate(opencpu_task_main,"opencpu",1024,NULL,TASK_PRIORITY_NORMAL,NULL);
}

m5311_opencpu.h

// 增加一行
extern char buffer[300];

中移M5311-NBIOT-OPENCPU开发-HTTP串口收发器相关推荐

  1. 中移M5311-NBIOT-低功耗OPENCPU开发-MQTT

    中移M5311-NBIOT-低功耗OPENCPU开发-MQTT M5311 全部技术资料文档和SIM卡封装库 链接:https://pan.baidu.com/s/1VHIwO4L85O6BtLLxb ...

  2. 中移4G模块-ML302-OpenCpu开发-串口开发

    B站:https://space.bilibili.com/309103931 中移4G模块-ML302专栏:https://blog.csdn.net/qq_33259323/category_10 ...

  3. 中移4G模块-ML302-OpenCpu开发-51单片机串口转I2C

    B站:https://space.bilibili.com/309103931 中移4G模块-ML302专栏:https://blog.csdn.net/qq_33259323/category_10 ...

  4. 中移M5310A NBIoT模组通信测试命令

    总结一下中移M5310A NBIoT模组的常用测试命令,这个命令是个脚本,可以编辑,在自己开发的串口软件上可用,有需要的请留言. 脚本是.ini格式的文件,可以直接编辑文件然后加载到脚本区.字段用\t ...

  5. 中移4G模块-ML302-OpenCpu开发-ADC

    B站:https://space.bilibili.com/309103931 中移4G模块-ML302专栏:https://blog.csdn.net/qq_33259323/category_10 ...

  6. 中移4G模块-ML302-OpenCpu开发-(MQTT连接阿里云-订阅主题)

    B站:https://space.bilibili.com/309103931 中移4G模块-ML302专栏:https://blog.csdn.net/qq_33259323/category_10 ...

  7. 中移4G模块-ML302-OpenCpu开发-2-MQTT连接阿里云

    B站:https://space.bilibili.com/309103931 中移4G模块-ML302专栏:https://blog.csdn.net/qq_33259323/category_10 ...

  8. 中移4G模块-ML302-OpenCpu开发-(固件编译和烧录)

    B站:https://space.bilibili.com/309103931 中移4G模块-ML302专栏:https://blog.csdn.net/qq_33259323/category_10 ...

  9. 中移物联ML302开发板上手体验

    开始 中移物联网的ML302开发板是支持4G Cat.1网络的开发板,对于Cat.1这里就不再赘述,详细可以去官网了解一下. 接下来介绍中移物联网的ML302开发板以及具体的上手步骤,给那些刚拿到开发 ...

最新文章

  1. 写在2-14,程序员才看得懂的情书
  2. Android实现对图片的缩放、剪切、旋转、存储
  3. mongodb学习(六)索引
  4. ajax xmlhttp.responsetext,Ajax:xmlhttp.responseText响应显示完整的内部HTML而不是关闭所需文本...
  5. MATLAB机器学习系列-11:粒子群优化原理及其matlab实现
  6. 在windows下查看进程
  7. 2018/7/13-纪中某C组题【jzoj3382,jzoj3383,jzoj3384,jzoj3385】
  8. web网络图片查看器Android
  9. Python3 学习
  10. Google Chrome源码剖析【序】
  11. html canvas drawrect 变形,canvas图形变换
  12. 场内玩家追赶,场外玩家乐此不疲,场内场外谁主沉浮?
  13. C#,VB.NET如何将Word转换为PDF和Text
  14. 丛书【数据库面试笔试宝典】已在京东、淘宝、天猫等各大电子商城销售
  15. 杀戮尖塔用java也打不开_游戏进不去 打不开 求救
  16. 【雷达信号处理】---雷达分辨率
  17. DockOne微信分享(六十四):基于Docker实现DevOps的一些探索
  18. 数“聚”价值 | 清华大学“首席数字官CDO项目”在线启动
  19. win98 支持html5,穿越1999:如何装一台Win98时代的PC
  20. ESP8266系列WIFI模块的使用·

热门文章

  1. 74ls90设计十进制计数器电路图_利用555与74ls90制作电子秒表
  2. 搭建Kafka集群环境
  3. linux 内存泄露检测工具——valgrind
  4. C++虚函数表的总结
  5. ABB机器人VGT文件_ABB机器人与焊机之间通讯方式
  6. 图解Visual Studio 2010中的UML建模功能
  7. 联影uEXPLORER全身扫描仪获FDA批准,2019年初将在美国上市...
  8. Python爬虫--- 1.2 BS4库的安装与使用
  9. 视+AR正式发布EasyAR引擎2.0版,并宣布开放AR相机平台
  10. JavaScript中的Function类型总结