C51-- 蓝牙,WIFI模块

C51编程25-应用篇(单片机与电脑端实现wifi通讯) 单片机使用ESP-01S wifi模块与电脑端进行数据通讯。 阅读详情

HC-08蓝牙模块: 

蓝牙 -- 最好用的 串口透传 模块


透传 -- 透明传送,指的是在数据传输的过程中,通过无线的方式这组数据不发生任何形式的改变,
仿佛传输过程是透明的,同时保证传输质量,最终原封不动的传送到接收者手里

只要通过串口编程 获得数据即可

波特率: 9600 MHZ

// 学会串口 就能使用蓝牙模块 
 -- 就能通过蓝牙 模块进行交互-- 比如通过蓝牙在串口上发送指令让单片机执行
================================================

通过USB转TTL 来插入电脑,就可以实现手机和电脑的串口数据传输

AT命令修改蓝牙名称: 
AT + NAME = 新的名字


 

wifi模块:

基本概念

通过wifi模块 让 51单片机上网:

使用的wifi模块 -- ESP-8266  -- 高度基础的wifi MCU -- 支持RTOS(实时系统) 和 wifi协议栈
基于AT指令设计:

AT指令 --是从终端设备 or 数据终端设备 or 数据电路终端设备发送的

每条AT命令行,只能包含一条AT指令,对于由终端设备主动向PC段报告的URC or response响应,也要求一行最多有一个,
不允许上限的一行有多条指令 or 响应 
-- AT指令以回车作为结尾, 响应 or 上报 以回车 换行作为结尾
===================================
 ESP-8266   -- 一般 默认波特率 -- 115200
因为都是AT指令去驱动,so玩wifi模块都是 通过 串口调试助手
接下来玩以下 AT指令:

通过命令 配置 9600 的波特率:

AT + UART =9600,8,1,0,0
//8 个 数据位 , 1 个停止位
=======================

常用AT指令:


1.设置3种工作模式: 


AT+CWMODE=3
//1.是station(设备模式)  2.AP(路由模式) 3.双模


2. 以设备模式接入家中的路由器配置:


AT+CWJAP="CU_a2ry","c5m66yaa" 
 // 第一个“”填wifi名字,第二个“”填 wifi密码

//连接成功 弹出:
WIFI CONNECTED
WIFI GOT IP

==================


3.查询IP地址:


AT+CIFSR

+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ce:50:e3:77:dd:4e"
+CIFSR:STAIP,"192.168.1.17"
+CIFSR:STAMAC,"cc:50:e3:77:dd:4e"
=============================

4.接收发送数据


1.先通过网络调试助手创建服务器


2.在通过AT指令连接服务器:
 AT+CIPSTART="TCP","192.168.1.9",8880
//连接成功:
CONNECT

OK

3. 发送数据:
AT+CIPSEND=4 //设置即将发送数据的长度--4个字节

发出上面AT指令后出现 > 
就可以在发送框里面传输 后面传输(注意不能添加新行)

---------------------------------------
这种模式效率太低:  每次都 AT+CIPSEND=4 

5.透传:


我们就可以设置为透传:

1. AT+CIPMODE=1 //开启透传模式
2. AT+CIPSEND    //带回车 -- 开始发送接收数据
3. 随便怎么 发送,接收
4.退出透传模式 发送 +++ 不带换新行

程序:

========================================


代码实现 51 和wifi模块的连接


code 关键字 -- 单独空间存储数据

#include"reg52.h"
#include<string.h>

#define SIZE 12

sfr AUXR = 0x8E;
sbit D5 = P3^7;

char cmd[SIZE];
code char LJWL[]="AT+CWJAP=\"CU_a2ry\",\"c5m66yaa\"\r\n";  //通过\r\n输出新行 -- 连接网络
code char LJFWQ[] ="AT+CIPSTART=\"TCP\",\"192.168.1.9\",8880\r\n"; // 链接服务器
char TCMS[]="AT+CIPMODE=1\r\n"; //开启透传模式
char SJCS[]="AT+CIPSEND\r\n"; //数据接收

void Delay1000ms()        //@11.0592MHz
{
    unsigned char i, j, k;

    
    i = 43;
    j = 6;
    k = 203;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}

void UartInit(void)        //9600bps@11.0592MHz
{
    AUXR=0x01; //减少定时器辐射 -- 抗干扰
    SCON =0x50; //配置 串口口工作方式1,REN 使能接收
    //不配 PCON  -- 不设置倍数关系
    //配置定时器1为 8位自动重装
    TMOD &=0xF0; //高位清零
  TMOD |=0x20;  //00 10  -- 配置为定时器1为: 1 0 模式 -- 8位自动重装
  
    //定义初值
  TL1=0xFD;
    TH1=0xFD; // 9600 波特率的初值
  TR1= 1; // 定时器 -- 启动
    
    EA =1; // 开启总中断
    ES=1;  // 开启串口中断
    
}


void sendByte(char a)
{
SBUF = a;
while(!TI);
TI=0;    
}


void sendString(char *str)
{

 while(*str!='\0')
 {
 sendByte(*str);
 str++;
 } 

}


void main()
{
    
    D5=1;

    //配置C51串口的 通信方式:
    UartInit();
while(1){
   //Delay1000ms();
  //往发送缓冲区 写入数据-- 就完成数据的发送
  //sendString("mengxianggiegie\r\n");
    
    sendString(LJWL); // 链接网络 Delay1000ms();
    Delay1000ms();
    Delay1000ms();
    Delay1000ms();
     Delay1000ms();
  sendString(LJFWQ); //连接服务器
     Delay1000ms();
    Delay1000ms();
    Delay1000ms();
    Delay1000ms();
     Delay1000ms();
    sendString(TCMS); //开启透传
     Delay1000ms();
    Delay1000ms();
    Delay1000ms();
    Delay1000ms();
     Delay1000ms();
    sendString(SJCS); //接收数据
     Delay1000ms();
    Delay1000ms();
    Delay1000ms();
    Delay1000ms();
     Delay1000ms();
 }
}

void uartHandler() interrupt 4
{
    static i = 0;
 if(RI) // 中断处理函数中,对于接收中断的响应
 {
    RI=0; //清楚接收中断标志位
      cmd[i] = SBUF;
      i++;
      if(i==SIZE) 
            i=0;
     
    if(strstr(cmd,"en")){//收到 o-pen 开灯
     D5=0;
         i=0;    
         memset(cmd,'\0',SIZE);
    }
        else if(strstr(cmd,"se")){//收到c-lose 关灯
     D5=1;
         i=0;    
         memset(cmd,'\0',SIZE);
    }
            


 }
  
    
}

=============================


优化 上面代码 通过TCP 通信点灯: 

#include"reg52.h"
#include<string.h>

#define SIZE 12

sfr AUXR = 0x8E;
sbit D5 = P3^7;

char cmd[SIZE];
code char LJWL[]="AT+CWJAP=\"CU_a2ry\",\"c5m66yaa\"\r\n";  //通过\r\n输出新行 -- 连接网络
code char LJFWQ[] ="AT+CIPSTART=\"TCP\",\"192.168.1.9\",8880\r\n"; // 链接服务器
char TCMS[]="AT+CIPMODE=1\r\n"; //开启透传模式
char SJCS[]="AT+CIPSEND\r\n"; //数据接收

void Delay1000ms()        //@11.0592MHz
{
    unsigned char i, j, k;

    
    i = 43;
    j = 6;
    k = 203;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}

void UartInit(void)        //9600bps@11.0592MHz
{
    AUXR=0x01; //减少定时器辐射 -- 抗干扰
    SCON =0x50; //配置 串口口工作方式1,REN 使能接收
    //不配 PCON  -- 不设置倍数关系
    //配置定时器1为 8位自动重装
    TMOD &=0xF0; //高位清零
  TMOD |=0x20;  //00 10  -- 配置为定时器1为: 1 0 模式 -- 8位自动重装
  
    //定义初值
  TL1=0xFD;
    TH1=0xFD; // 9600 波特率的初值
  TR1= 1; // 定时器 -- 启动
    
    EA =1; // 开启总中断
    ES=1;  // 开启串口中断
    
}


void sendByte(char a)
{
SBUF = a;
while(!TI);
TI=0;    
}


void sendString(char *str)
{

 while(*str!='\0')
 {
 sendByte(*str);
 str++;
 } 

}


void main()
{
    int mark = 0;
    D5=1;

    //配置C51串口的 通信方式:
    UartInit();
while(1){
   //Delay1000ms();
  //往发送缓冲区 写入数据-- 就完成数据的发送
  //sendString("mengxianggiegie\r\n");
    if(!mark){ //第一次打开链接服务器 和网络
    sendString(LJWL); // 链接网络 Delay1000ms();
    Delay1000ms();
    Delay1000ms();
    Delay1000ms();

  sendString(LJFWQ); //连接服务器
     Delay1000ms();
     Delay1000ms();
     Delay1000ms();
        
    sendString(TCMS); //开启透传
     Delay1000ms();
     Delay1000ms();
     Delay1000ms();
        
    sendString(SJCS); //接收数据
     Delay1000ms();
     Delay1000ms();    
     Delay1000ms();
        
     mark=1;
  }
    else{
   sendString("mengxianggiegie\r\n");
     Delay1000ms();
  }
 }
}

void uartHandler() interrupt 4
{
    static i = 0;
 if(RI) // 中断处理函数中,对于接收中断的响应
 {
    RI=0; //清楚接收中断标志位
      cmd[0] = SBUF;
     

     
    if(cmd[0] == '1'){//收到 o-pen 开灯
     D5=0;
         i=0;    
        
    }
        else if(cmd[0] == '0' ){//收到c-lose 关灯
     D5=1;
         i=0;    
        
    }
            


 }
  
    
}

========================


上方代码优化 -- 读取返回 结果以便 观察进度


#include"reg52.h"
#include<string.h>

#define SIZE 12

sfr AUXR = 0x8E;
sbit D5 = P3^7;
sbit D6 = P3^6;

char buffer[SIZE];
code char LJWL[]="AT+CWJAP=\"CU_a2ry\",\"c5m66yaa\"\r\n";  //通过\r\n输出新行 -- 连接网络
code char LJFWQ[] ="AT+CIPSTART=\"TCP\",\"192.168.1.9\",8880\r\n"; // 链接服务器
char TCMS[]="AT+CIPMODE=1\r\n"; //开启透传模式
char SJCS[]="AT+CIPSEND\r\n"; //数据接收


char AT_OK_Flag = 0; 
char AT_Connect_Net_Flag = 0;


void Delay1000ms()        //@11.0592MHz
{
    unsigned char i, j, k;

    
    i = 43;
    j = 6;
    k = 203;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}

void UartInit(void)        //9600bps@11.0592MHz
{
    AUXR=0x01; //减少定时器辐射 -- 抗干扰
    SCON =0x50; //配置 串口口工作方式1,REN 使能接收
    //不配 PCON  -- 不设置倍数关系
    //配置定时器1为 8位自动重装
    TMOD &=0xF0; //高位清零
  TMOD |=0x20;  //00 10  -- 配置为定时器1为: 1 0 模式 -- 8位自动重装
  
    //定义初值
  TL1=0xFD;
    TH1=0xFD; // 9600 波特率的初值
  TR1= 1; // 定时器 -- 启动
    
    EA =1; // 开启总中断
    ES=1;  // 开启串口中断
    
}


void sendByte(char a)
{
SBUF = a;
while(!TI);
TI=0;    
}


void sendString(char *str)
{

 while(*str!='\0')
 {
 sendByte(*str);
 str++;
 } 

}


void main()
{
    int mark = 0;
    D5=1; //状态灯一开始是熄灭状态

    //配置C51串口的 通信方式:
     UartInit();
     Delay1000ms(); //给esp wifi 模块上电时间
    
    sendString(LJWL); // 链接网络 Delay1000ms();
  while(!AT_Connect_Net_Flag); // 等到有效才去执行下面的代码
    while(!AT_OK_Flag);
    AT_OK_Flag=0;
    
  sendString(LJFWQ); //连接服务器
    while(!AT_OK_Flag);
    AT_OK_Flag=0;  //用完清零, 方便下次做判断
    
    sendString(TCMS); //开启透传
    while(!AT_OK_Flag);
    AT_OK_Flag=0;
    
    sendString(SJCS); //接收数据
    while(!AT_OK_Flag);
    
    if(AT_Connect_Net_Flag){
    D5=0; // 通过灯判断是否联网成功  -- 点亮表示成功
   }
     if(AT_OK_Flag){
   D6=0; //代表连接服务器,并且打开 透传 成功 
  }
    
while(1){
   Delay1000ms();
  //往发送缓冲区 写入数据-- 就完成数据的发送
  //sendString("mengxianggiegie\r\n");
   sendString("mengxianggiegie\r\n");
  
 }
}

void uartHandler() interrupt 4
{
    static i = 0;
    char tmp;
    
 if(RI) // 中断处理函数中,对于接收中断的响应
 {
    RI=0; //清楚接收中断标志位
     
      tmp = SBUF;
      if(tmp == 'W' || tmp == 'O'|| tmp == 'L' ){ //匹配到W开头的时候,把下标定义为0,方便后面的[0] [5]的位置比较
     i=0;
    }
      buffer[i++]=tmp;
        
      if(buffer[0]=='W' && buffer[5]=='G'){//联网成功 WIFI GOT 
     AT_Connect_Net_Flag=1; //标志修改为联网状态
         memset(buffer,'\0',SIZE);
    }

        if(buffer[0]=='O' && buffer[1]=='K'){//联网成功 WIFI GOT 
     AT_OK_Flag=1;
         memset(buffer,'\0',SIZE);
    }
        /*
          if(buffer[0]=='F' && buffer[1]=='A'){//联网失败 FAIL 
     for(i=0;i<3;++i){
     D5=0;
         Delay1000ms();
         D5=1;
         Delay1000ms();
    }        
         sendString(LJWL);
         memset(buffer,'\0',SIZE);
    }
        */
        
    if(buffer[0] == 'L'&& buffer[2] == '1'){//收到 o-pen 开灯
     D5=0;
         memset(buffer,'\0',SIZE);
    }
        else if(buffer[0] == 'L'&& buffer[2] == '0'){//收到c-lose 关灯
     D5=1;
         memset(buffer,'\0',SIZE);
        
    }
        if(i==12)
            i=0;


 }
  
    
}

注释部分为进一步优化,没能连接成功就 AT+RET -- 重启 or 重新连接
==============================

51单片机学习——串口——蓝牙模块(hc-08) 通过hc-340将蓝牙模块与电脑连接,通过STC-ISP串口助手给蓝牙发送更改名称指令(AT+NAME=xxxx),更改成功STC-ISP接收缓冲区显示(OKsetNAME)用到模块:ch-340(串口,USB转TTL)1、hc蓝牙助手下载网站(蓝牙模块(hc-08)软件:STC-ISP。 阅读详情

相关推荐

基于C51的语音智能车(含循迹/跟随/避障/测速屏显/蓝牙WIFI4G控制等功能)

概况:本项目完全开源,基于stc89c52rc,语音控制切换循迹/跟随/避障/蓝牙控制等模式,包含测速屏显并传给上位机等功能。

qq_73379310的博客 1万+

【超详细】C51单片机与HC-05蓝牙模块实现手机点灯

此文记录HC05蓝牙模块在C51单片机上的学习历程。

shanhehaoda_的博客 2万+

基于51单片机的蓝牙小车制作【新手向

单片机基于51单片机的蓝牙小车制作历程【新手向前言一:程序连接蓝牙模块功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 ...

qq_37504214的博客 6413

51单片机蓝牙模块(HC05)运行原理

当设置完配置模式一系列参数后,我们便可以进入正常模式,将蓝牙模块和另一个拥有蓝牙模块的设备进行通信,从而传递数据。AT+NAME=WARNING (设置蓝牙的名字为HC05,手机蓝牙搜索时就找这个名字)AT+PSWD=123456 (设置密码,手机蓝牙串口APP连接蓝牙模块,需要输入密码)此时你发送的信息就会被单片机原路返回显示在窗口上,我们的蓝牙模块探索之旅就此结束了!AT+ROLE=0 (蓝牙模块设为从机,此时只可以被搜索)AT+CMODE=1 (蓝牙模块可以和任意设备连接)博主这篇博文的帮助!

wei190328的博客 2万+

C51智能小车工程包:蓝牙遥控+红外避障+LCD实时显示全功能源码

这个资源是基于经典8051架构单片机(如STC89C52)开发的智能小车完整可运行工程,支持多种控制与感知方式。通过HC-06蓝牙模块实现手机APP或串口助手远程操控,同时兼容红外遥控器指令;采用VS18B红外对管完成前方障碍物检测与自动避障响应;运动控制由L298N驱动双直流电机,支持前进、后退、左右转向和急停;蜂鸣器提供操作反馈与报警提示;LCD1602液晶屏实时显示当前模式、速度状态、红外/火焰检测结果等信息。所有功能模块高度解耦:main.c统筹调度,MOTO.c管理电机PWM与方向逻辑,HC06.

r7s8t的博客 224

51单片机多任务协同设计:中断、定时器与串口复用实战

51单片机作为嵌入式入门与工业低成本控制的经典平台,其资源受限特性倒逼开发者深入理解中断机制、定时器协同与串口分时复用等底层原理。掌握这些技术,不仅能突破LED流水灯级应用瓶颈,更能支撑红外循迹、超声波测距、编码器测速、蓝牙/WiFi通信等多模块并行运行。本文聚焦STC89C52RC等主流51芯片,在Keil C51环境下,通过精确微秒级延时、中断优先级配置、IO口时空复用及环形缓冲区设计,实现八大功能稳定共存。适用于智能小车原型开发、工业巡检设备降本设计及单片机进阶工程实践。

weixin_29189987的博客 233

C51--WiFi模块ESP8266--AT指令

ESP8266EX集成了32位Tensilica 处理器、标准数字外设接口、天线开关、射频balun、功率放大器、底噪放大器、过滤器和电源管理模块,可将所占的PCB空间降低。内置低功耗Tensilica L106 32位 RISC处理器、cpu时钟最高达160MHz、支持实时操作系统(RTOS)和wifi协议栈,可将高达80%的处理能力留给应用编程和开发。WiFi模块–ESP-01s,通信模块是通过串口调试助手发送AT指令实现联网。

weixin_48208102的博客 1598

Windows 64 位系统下安装配置 DOSBox 及 debug.exe

该篇博客同样作为类似问题 “如何在 Windows 64 位系统下进入 debug” 的答案。 很多同学初看王爽的《汇编语言》,或者因为其它原因需要进入 debug 调试模式下学习汇编语言的时候,会发现进入不了,出现类似以下的错误提示。 这是因为他们使用的是 64 位的 Windows 系统(Win 7,Win 8 以及 Win 10 等),而 64 位 Windows 系统不再支持在命令提示符窗口下进入 debug 调试模式。那么对于使用 64 位 Windows 系统的用户来说,该怎样才能够顺利进入 d

加号减减号的博客 5万+

C51---蓝牙模块---连接软件---控制LED灯

/定时器1时钟为Fosc/12,即12T。//串口1选择定时器1为波特率发生器。//设定定时器1为8位自动重装方式。//8位数据,可变波特率。3.接线:VCC-VCC、GND-GND、RXD-TXD、TXD-RXD。//清除定时器1模式位。//设定定时器重装值。//禁止定时器1中断。//往数据缓冲区写入数据,就完成数据的发送。1.器件:C51、HC-08蓝牙模块、ty-C数据线、杜邦线。

ALL IS FILE_ 3752

从零到一:用STM32 FOC算法驯服无刷电机的艺术

本文详细介绍了如何使用STM32和FOC算法实现无刷电机的高性能控制。从硬件搭建、参数识别到闭环调节,一步步解析FOC算法的核心原理与调优技巧,帮助开发者掌握电机控制的关键技术,实现从零到一的精准驯服。

kkk56的博客 919

【Cadence】stb仿真和ac仿真——以一个简单的全差分反相放大器仿真为例

最近在补一些仿真方法学的问题,以及一些一直以来都有点模糊的概念,简单记录一下。搭建一个以两个CMOS反相器构成的全差分放大器(28nm工艺,PMOS和NMOS尺寸一致)激励的设置方便共模和差模仿真用同一个TB(这里有一个问题:这个放大器需要在开环下仿真还是闭环下?哪些放大器应用在开环,哪些闭环?这种应用场景不同会导致需要仿真得到开环还是闭环增益,或者环路增益?(我知道放大器在设计的时候肯定都是闭环应用的多,但是什么时候没必要闭环应用?光验证ac和stb仿真是否一样的话有必要有回路吗?

weixin_44951108的博客 5万+

04.初识单片机(串口的运用)

串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方 式的扩展接口。串行接口(Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简 单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。特点:(1)设备之间的一种连接方式(2)双向通信,全双工(3)传输的速度较慢(4)传输时数据是按顺序传送。

blackpz的博客 337

DDM-MIMO-FMCW雷达速度模糊与解模糊MATLAB仿真

本文深入解析了DDM-MIMO-FMCW雷达中的速度模糊现象及其解模糊方法,通过MATLAB仿真详细展示了相位编码解调、速度扩展算法和混合波形设计三大解决方案。文章还提供了参数配置、信号建模和结果可视化的实用技巧,并分享了工程实践中的避坑指南,帮助开发者高效解决雷达信号处理中的速度模糊问题。

weixin_31528001的博客 349

基于51单片机的录音笔语音录放存储音频放大ISD4004无线蓝牙WiFi模块摄像头视频监控APP设计DIY-C28

本系统由STC89C52单片机最小系统电路、OLED液晶显示、(无线蓝牙/无线WIFI/无线视频监控模块-可选)、ISD4004模块电路、按键电路、电源电路组成。【1】单片机驱动ISD4004进行4段录音和播放。通过麦克风电路进行声音采集,通过LM386模块进行音频放大播放。【2】通过按键能够控制对4段音频进行单独录音和单独播放,以及停止。【3】液晶显示相关信息,包括当前第几段音频,音频在录制、播放、停止状态的显示。 【4】无线APP功能:手机端APP能够连接板载无线模块,查看设计所有数据;APP也能

Danpianjihuizong的博客 531

中文实体关系抽取数据集大盘点:从百度Duie2.0到医疗CBLUE,哪个更适合你的NLP项目?

本文全面分析了中文实体关系抽取领域的主流数据集,包括百度DuIE 2.0、医疗CBLUE等,帮助开发者根据项目需求选择最适合的数据集。文章详细对比了各数据集的特点、适用场景及优化策略,为自然语言处理项目提供实用指南。

weixin_29284657的博客 121

单卡调试OpenGait:从分布式到本地的轻量级改造指南

本文为个人开发者和研究者提供了一份详细的OpenGait框架单卡调试指南。针对该框架默认依赖多GPU分布式训练的问题,文章通过分析核心痛点,逐步讲解了如何从环境搭建、绕过分布式初始化陷阱、处理通信后端报错到最终配置与调试,实现从分布式到本地的轻量级改造,帮助读者在单张GPU上高效进行步态识别模型的验证与学习。

weixin_28223453的博客 139

菜鸟重生之我要做嵌入式工程师:2-C51

该文章针对嵌入式乃至所有程序员绕不开的一个历程--单片机C51,进行了学习路线以及学习历程的浓缩以及记录。对0基础小白十分友好。

zhwlit的博客 665

Ubuntu+Dify实战:如何让大模型知识库完美支持图片召回(附避坑指南)

本文详细介绍了在Ubuntu系统上部署Dify平台,并实现大模型知识库图片召回功能的完整实战方案。通过解析Dify处理图片的底层逻辑,重点讲解了配置Nginx代理服务器将本地图片路径转换为可公开访问URL的核心工程步骤,并提供了文档预处理、环境变量配置以及父子分段策略等高级技巧,帮助开发者构建图文并茂的AI应用,有效提升知识库的丰富性和用户体验。

c7d8e的博客 445

来点c语言编程经验,少走弯路

c语言是经典的,不用质疑。 不同时期,会有一些语言冲到了编程语言的热门榜, c 语言从没有退去。 有没有人从未用过 c 语言的编程高手? 万物互联的时代,在物联网的传感层,使用更多的嵌入式设备,都是基于 c 语言或者 c++ 的微控制器或者嵌入式单片机编程,是设备介入互联网的基础。 WiFi 模块、蓝牙芯片、RF读写设备的编程几乎都是 c 语言来编写的。 我经常用 c 语言编写51单片机程序以及ARM嵌入式芯片的程序,准备整理一些小小经验分享一下。 你有那些 c 编程的经验? 欢迎你更多的爱好

lcz8868的专栏 120

【即插即用模块】卷积篇 | TCSVT 2025 | MFACB:多尺度膨胀融合,快速扩大感受野,多尺度特征精准捕捉!

本文提出了一种新型多尺度融合膨胀卷积模块MFACB,用于增强语义分割任务中的特征表达能力。该模块通过三分支串联膨胀卷积结构快速扩大感受野,采用双路径融合机制(基础信息路径+多尺度信息路径)实现高效上下文聚合。相比传统卷积块,MFACB在保持轻量化的同时显著提升了多尺度特征捕捉能力,实验表明其性能优于基础残差块。该模块支持自定义膨胀率和步长调整,可灵活嵌入不同网络阶段,适用于需要特征增强的视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 311

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【单片机课程设计/毕业设计】基于 STM32 或 51 单片机的按键可调上下限温度控制系统设计 基于 STM32 或 51 单片机的 WiFi 无线温度采集监控装置设计(022803)

本文设计一套基于 STM32 或 51 单片机的温度监测与无线报警控制系统。系统选用 DS18B20 数字温度传感器采集环境温度,依托 LCD1602 液晶屏完成现场温度实时显示,通过实体按键实现温度上下限阈值自定义设置。系统搭载 LED 指示灯与蜂鸣器构建声光报警单元,温度超出设定阈值时触发对应报警提示;搭载蓝牙通信模块实现与手机 APP 的数据交互,支持移动端查看温度、远程修改报警阈值,模块可更换为 WiFi 通信方式拓展应用场景。

152

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【单片机课设毕设项目】基于 STM32 或 51 单片机的 WiFi 无线温度采集监控装置设计 基于 STM32 或 51 单片机的嵌入式环境温度监测终端开发(022803)

本文设计一套基于 STM32 或 51 单片机的温度监测与无线报警控制系统。系统选用 DS18B20 数字温度传感器采集环境温度,依托 LCD1602 液晶屏完成现场温度实时显示,通过实体按键实现温度上下限阈值自定义设置。系统搭载 LED 指示灯与蜂鸣器构建声光报警单元,温度超出设定阈值时触发对应报警提示;搭载蓝牙通信模块实现与手机 APP 的数据交互,支持移动端查看温度、远程修改报警阈值,模块可更换为 WiFi 通信方式拓展应用场景。

132

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

单片机计算机毕设之基于 STM32 或 51 单片机的嵌入式环境温度监测终端开发 基于 STM32 或 51 单片机的手机 APP 远程温度阈值控制系统设计(022803)

本文设计一套基于 STM32 或 51 单片机的温度监测与无线报警控制系统。系统选用 DS18B20 数字温度传感器采集环境温度,依托 LCD1602 液晶屏完成现场温度实时显示,通过实体按键实现温度上下限阈值自定义设置。系统搭载 LED 指示灯与蜂鸣器构建声光报警单元,温度超出设定阈值时触发对应报警提示;搭载蓝牙通信模块实现与手机 APP 的数据交互,支持移动端查看温度、远程修改报警阈值,模块可更换为 WiFi 通信方式拓展应用场景。

191

单片机毕业设计-基于 STM32 或 51 单片机的阈值温度声光报警装置设计 基于 STM32 或 51 单片机的无线温度监控 APP 控制系统设计(022803)

本文设计一套基于 STM32 或 51 单片机的温度监测与无线报警控制系统。系统选用 DS18B20 数字温度传感器采集环境温度,依托 LCD1602 液晶屏完成现场温度实时显示,通过实体按键实现温度上下限阈值自定义设置。系统搭载 LED 指示灯与蜂鸣器构建声光报警单元,温度超出设定阈值时触发对应报警提示;搭载蓝牙通信模块实现与手机 APP 的数据交互,支持移动端查看温度、远程修改报警阈值,模块可更换为 WiFi 通信方式拓展应用场景。

我的个人博客:https://bishe666.top 186

【单片机毕设案例分享】单片机与 LCD12864 联动公厕环境数据可视化终端设计 基于 ESP8266 蓝牙终端的公厕远程参数读写控制系统(021801)

本课题以公共卫生间智能化管控需求为目标,设计一套基于 STM32 或 51 单片机的 4 坑位智能公厕消毒监测控制系统。系统以单片机为主控核心,搭载红外人体检测、DS18B20 测温、DS1302 时钟、LCD12864 显示、JQ8400 语音播报、ESP8266 无线通信等外设模组,配套继电器、风扇硬件实现通风消毒自动控制。系统可实时识别坑位占用状态,超时触发语音提醒;依托时钟芯片实现掉电持续计时,温度传感器采集室内温度并自动启停温控设备;

QQ_2876970413的博客 185

【STC32G12K128开发板】——从零到一:物联网应用开发实战入门指南

本文为STC32G12K128开发板物联网应用开发实战入门指南。从开箱、开发环境搭建、核心外设驱动到传感器数据采集与无线通信,详细介绍了如何利用该开发板快速构建智能环境监测终端,实现从数据感知到无线传输的完整物联网应用流程。

gpu4optimizer的博客 529
上一篇: C51串口
下一篇: C51- 4G 与 LCD
mx_jun
博客等级 码龄5年 1605粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值