随着物联网的快速发展,无线通信技术也得以迈步发展,在物联网网络层的多种连接技术里,不仅需要速率和稳定性更高的5G技术,也需要低功耗、远距离、大连接的LPWAN(Low-Power Wide-Area Network,低功耗广域网络)技术。其中, LoRaWAN以其独特的灵活性脱颖而出,得到物联网界的认可。LoRa是LoRaWan的一个子集,属于物理层的一种调制技术,采用线性调制扩频的方式,能显著提高接收灵敏度,实现了比其它调制方式更远的通信距离;LoRa是低功耗广域网无线标准,最大特点就是在同样的功耗条件下比其他无线方式传播的距离扩大3-5倍,实现了低功耗和远距离的统一。世界人口正在越来越多地转移到城市,这也促使大家去探索使用智慧城市技术来帮助城市建立可持续的基础设施,目前采用LoRaWAN并已经落地的智慧城市应用包括智能能源、智能交通、智慧建筑、城市照明等等。在能源领域,目前水表、气表、电表还有热表都用上了LoRaWAN技术,全球的智能表计发展非常迅速,通过智能表计实时数据,能够分析公用事业的使用情况以降低运营成本。在交通行业,采用LoRaWAN传输数据,传统的停车管理服务通过LoRaWAN地磁传感器,正在从人工方式转化为数字方式,提高了智慧停车的运营管理效率。有了这些解决方案,城市可以拥有高效的停车系统,驾驶员可以马上知道哪里可以停车。这大大减少了不必要的兜圈并优化了每个停车场的效率。另外,LoRaWAN也同样赋能了建筑行业,建筑不再仅仅是安全食宿、生产工作、娱乐休息的场所,更演化成为具备协同高效、自我优化、节能环保的智能生态体。最新的智能建筑解决方案案例就是对COVID-19疫情的快速响应。已经部署的LoRaWAN解决方案可以立即进行再设计以满足办公楼和大型公共设施对安全、健康、清洁和人数计数的需求。这些改变将很快发生,且持续进行下去。企业和物业经理们将改变管理大楼的方式。适当的投资可以让任何一幢大楼从一幢冷冰冰的建筑转变了一个具有活力,产生数据的资产。不论从技术、供应链体系、产业结构还是生态建设,LoRa依然是一个市场化行为为主导的技术选项,采用LoRa通信的物联网项目中包含非常多的技术和元素,很多价值远远超过通信本身,未来发展中,业界应该更多聚焦于应用价值的创造,聚焦于市场化行为和商业模式,以求在物联网时代赢得先机。 Lora产品如何快速实现冷链物流行业应用部署? Lora和LoraNET有什么区别?LoraNET有哪些特点?LoraNET自主网协议能用在哪些场景?LoraNET与LoraWAN通讯协议对比Lora及第三方的一站式解决方案 本次直播联合正点原子——原子哥平台共同直播。原子哥平台,聚拢电子技术领域知名讲师,结合理论和实践,由浅入深进行讲解演示,让你快速上手新技术,积累实战经验,提升职场竞争力。 【本次直播主题】Lora产品如何快速实现冷链物流行业应用部署?LoraNET无线通讯协议栈浅析Lora及第三方PaaS云服务+SaaS应用软件解决方案 【直播福利】直播预约好礼:电子工程师专用测电笔直播间福利1:直播间3000元现金红包(含助力榜红包)直播间福利2:好友助力奖品:安信可蓝牙开发板直播间福利3:直播中问答奖品:SX1262 ASR6505 LORA模块直播间福利4:免费抽奖奖品:华为Mate40、小米智能音箱、SX1262 ASR6505 LORA模块、电阻本、PCB鼠标垫、PCB尺、新人券(30元)。 【直播海报】
win10通讯端口为什么有黄色感叹号啊,试了很多次还是有c?
下载区来送福利啦!感谢大家对芯吧客资料下载区的喜爱,带来邀请好友,领开发板活动!【参与流程】1.在任意资料页面点击左侧浮窗,手机扫码打开活动页面2.手机页面登录后,点击“立即邀请好友”,右上角“...”发送给未注册的工程师好友3.好友点击“下载资料,帮他助力”,跳转资料页面成功进行下载后,即可助力成功。4.扫码打开页面即可查询助力进度,完成目标后即可填写收货地址,免费包邮活动STM32最小系统板或等值开发产品!【扫码直接参与、查看】
#include <reg51.h> #define uchar unsigned char #define uint unsigned int uchar data DirectVal[4]; //秒显示的变量 uchar data DefaultVal_DX=60; //东西数默认 uchar data DefaultVal_NB=90; //南北默认值 uchar data setTime_DX=60; //设置东西方向的时间 uchar data setTime_NB=90; //设置南北方向的时间 int n; uchar data CountCount1; sbit k4=P3^1; //禁止 sbit k1=P3^5; //时间加 sbit k2=P3^6; //时间减 sbit k3=P3^7; //切换方向 sbit SPEAKER = P3^2; sbit RED_NB=P2^6; //南北红灯标志 sbit YELLOW_NB=P2^5; //南北黄灯标志 sbit GREEN_NB=P2^4; //南北绿灯标志 sbit RED_DX=P2^3; //东西红灯标志 sbit YELLOW_DX=P2^2; //东西黄灯标志 sbit GREEN_DX=P2^1; //东西绿灯标志 bit set=0; //调时方向切换键标志 =1时,南北,=0时,东西 bit dx_nb=0; //东西南北控制位 bit Shanshuo=0; //闪烁标志位 uchar code TABLE[11]={ //共阴极字型码 0x3f //--0 0x06 //--1 0x5b //--2 0x4f //--3 0x66 //--4 0x6d //--5 0x7d //--6 0x07 //--7 0x7f //--8 0x6f //--9 0x00 //--NULL }; void key(); //按键扫描子程序 void SegmentDisplay(); //显示子程序 void Buzzer(); void delaylms(int ms) //延时子程序 { uint jk; for(j=0;j<ms;j++) //延时ms for(k=0;k<124;k++); //大约1毫秒的延时 } /@@*定时器0初始化*/ void Timer0Init(){ TMOD |= 0X01; TH0 = 0X4B; TL0 = 0XFC; ET0 = 1; EA = 1; TR0 = 1; } /@@*定时器1初始化*/ void Timer1Init(){ TMOD |= 0X10; TH1 = 0X4B; TL1 = 0XFC; ET1 = 1; EA = 1; TR1 = 1; } /@@*主程序*/ void main() { Timer0Init(); Timer1Init(); TR1 = 0; P2=0Xc3; // 默认东西绿灯,南北红灯灯 DefaultVal_NB=DefaultVal_DX+5; //设置南北通行时间比东西多5秒 while(1) { key(); SegmentDisplay(); } } /@@*按键扫描子程序*/ void key(void){ if(k1!=1) { delaylms(10); if(k1!=1){ TR0=0; Shanshuo=0; P2=0x00; TR1=0; if(set==0)//设置键按下 setTime_DX++;//南北加1 else setTime_NB++;//东西加1 if(setTime_NB==100) setTime_NB=1; if( setTime_DX==100) setTime_DX=1;//加到100置1 DefaultVal_NB=setTime_NB ;//设置的数值赋给东西南北 DefaultVal_DX=setTime_DX; do { SegmentDisplay(); }while(k1!=1);//松手检测 } } if(k2!=1) { //当K2(时间减)按键按下时 delaylms(10); if(k2!=1){ TR0=0; Shanshuo=0; P2=0x00; TR1=0; if(set==0) setTime_DX--; else setTime_NB--; if(setTime_NB==0) setTime_NB=99; if( setTime_DX==0 ) setTime_DX=99; DefaultVal_NB=setTime_NB ; DefaultVal_DX=setTime_DX; do{ SegmentDisplay(); } while(k2!=1); } } if(k3!=1) { delaylms(10); if(k3!=1){ TR0=0; set=!set; TR1=0; dx_nb=set; do{ SegmentDisplay(); } while(k3!=1); } } if(k4!=1){ delaylms(10); if(k4!=1){ TR0=0; P2=0x00; RED_DX=1; RED_NB=1; TR1=0; DefaultVal_DX=30; DefaultVal_NB=30; TR0 = 1; do{ SegmentDisplay(); SPEAKER = !SPEAKER; if((DefaultVal_DX == 0)&&(DefaultVal_NB==0)){ SPEAKER = 1; } } while(k4!=1); } } } /@@*数码管显示程序*/ void SegmentDisplay(void) { DirectVal[1]=DefaultVal_NB/10; // 东西秒十位 DirectVal[2]=DefaultVal_NB%10; // 东西秒个位 DirectVal[3]=DefaultVal_DX/10; // 南北秒十位 DirectVal[0]=DefaultVal_DX%10; // 南北秒个位 P1=0xff; P0=0x00; P1=0xfe; P0=TABLE[DirectVal[1]]; delaylms(1); P1=0xff; P0=0x00; P1=0xfd; P0=TABLE[DirectVal[2]]; delaylms(1); P1=0xff; P0=0x00; P1=0Xfb; P0=TABLE[DirectVal[3]]; delaylms(1); P1=0xff; P0=0x00; P1=0Xf7; P0=TABLE[DirectVal[0]]; delaylms(1); } void time0(void) interrupt 1 using 1 { TH0=0X4b; TL0=0Xfc; TR0=1; Count++; if(Count==10){ if((DefaultVal_NB<=5)&&(dx_nb==0)&&(Shanshuo==1)){//东西黄灯闪 GREEN_DX=0; YELLOW_DX=0; } if((DefaultVal_DX<=5)&&(dx_nb==1)&&(Shanshuo==1)){//南北黄灯闪 GREEN_NB=0; YELLOW_NB=0; } } if(Count==20){ Count=0; DefaultVal_DX--; //东西时间减1 DefaultVal_NB--; //南北时间减1 if((DefaultVal_NB<=5)&&(dx_nb==0)&&(Shanshuo==1)){//东西黄灯闪 GREEN_DX=0; YELLOW_DX=1; } if((DefaultVal_DX<=5)&&(dx_nb==1)&&(Shanshuo==1)){//南北黄灯闪 GREEN_NB=0; YELLOW_NB=1; } if(DefaultVal_DX==0&&DefaultVal_NB==5){//当东西倒计时到0时,重置5秒,用于黄灯闪烁时间 DefaultVal_DX=5; Shanshuo=1; } if(DefaultVal_NB==0&&DefaultVal_DX==5){//当南北倒计时到0时,重置5秒,用于黄灯闪烁时间 DefaultVal_NB=5; Shanshuo=1; } if(dx_nb==0&&DefaultVal_NB==0){//当黄灯闪烁时间倒计时到0时, P2=0x00;//重置东西南背方向的红绿灯 GREEN_NB=1; RED_DX=1; dx_nb=!dx_nb; Shanshuo=0; DefaultVal_NB=setTime_NB; //重赋南北方向的起始值 DefaultVal_DX=setTime_NB+5;//重赋东西方向的起始值 } if(dx_nb==1&&DefaultVal_DX==0){ //当黄灯闪烁时间到 P2=0X00; //重置东西南北的红绿灯状态 GREEN_DX=1; //东西绿灯亮 RED_NB=1; //南北红灯亮 dx_nb=!dx_nb; Shanshuo=0; DefaultVal_DX=setTime_DX; //重赋东西方向的起始值 DefaultVal_NB=setTime_DX+5; //重赋南北方向的起始值 } } } void time1(void) interrupt 3{ TH1=0X4b; TL1=0Xfc; Count1++; if(Count1==10) { YELLOW_NB=0;//南北黄灯灭 YELLOW_DX=0;//东西黄灯灭 } if(Count1==20){ Count1=0; YELLOW_NB=1;//南北黄灯亮 YELLOW_DX=1;//东西黄灯亮 } }
1.freeRTOS可以一次挂起所有任务吗? 2.在一个界面下,如果不需要所有任务都运行,大家是怎么处理的?
在编译驱动模块的时候使用depmod出现了short read的提示,但是也没有报错和其他提示 捕获.JPG (11.51 KB 下载次数: 0) 下载附件 前天 21:05 上传
是不是第一次必须用他专用烧写器写入isp固件后才能使用isp下载?还是芯片买回来直接可以用串口isp下载
是否可以用二极管接两路信号,然后再接到单片机uart上面,2个设备不会同时发送数据
做一个设计求指导,就是想在单片机上用摁键编辑信息可以在单片机上显示,并且能发送到电脑上,还能收到电脑的的信息。
有没有开源算法可以用,移植到stm32f429里面,用adc录制一段声音,然后处理成变调不变速播放,用dac输出
NE555外接的电阻与电容该如何确定?比如2脚与地之间、5脚与地之间、7脚与6脚(2脚)之间的电阻...。先谢过大家。
#include<reg51.h> #include<intrins.h> void Delay(unsigned char a) { unsigned char i; while(--a) { for(i=0;i<125;i++); } } void main(void) { unsigned char bi; while(1) { b=0xfe; for(i=0;i<8;i++) { P1=b; Delay(250); b=_crol_(b1); } } } #include <reg51.h> void delay1ms() { TH1=(65536-1000)/256; TL1=(65536-1000)%256; TR1=1; while(!TF1); TF1=0; } void main() { unsigned char code led[]={0xff0x990x000x000x000x810xc30xe7}; unsigned char i; unsigned int lie; TMOD=0x10; while(1) { i=0x01; for(lie=0;lie<8;lie++) { P0=i; P3=led[lie]; delay1ms(); i<<=1; } } }
BAIDU_CLB_fillSlot%28%22202496%22%29%3B uchar R_word; uchar ACK_Flag; uchar read_buffer_iic[16]; uchar write_buffer_iic[16];void Start(void) { TSDA_IO_OUT(); TSCL_IO_OUT(); TSDA=1; TSCL=1;delay_us(10); TSDA=0;delay_us(10); TSCL=0; delay_us(10); }void Stop(void) { TSDA_IO_OUT(); TSCL_IO_OUT(); TSDA=0; TSCL=0;delay_us(10); TSCL=1;delay_us(10); TSDA=1; }void Send_Byte(uchar Byte) { uint i; TSDA_IO_OUT(); TSCL_IO_OUT(); TSCL=0; delay_us(10); for (i=0;i<8;i++) { if(Byte & 0x80) {TSDA=1;} else {TSDA=0;} Byte = Byte << 1; delay_us(10); TSCL=1; delay_us(10); TSCL=0; delay_us(10); } }void ACK(void) { TSCL_IO_OUT(); TSDA_IO_IN(); TSDA=1; TSCL=1;delay_us(5); ACK_Flag = 0; if((RTSDA )) ACK_Flag = 1; TSCL=0; delay_us(10); }void ACK_0(void) { TSCL_IO_OUT(); TSDA_IO_OUT(); TSDA=0; TSCL=0; delay_us(10); TSCL=1; delay_us(10); TSCL=0; delay_us(10); }void NOACK(void) { TSCL_IO_OUT(); TSDA_IO_OUT(); TSDA=1; TSCL=0; delay_us(10); TSCL=1; delay_us(10); TSCL=0; delay_us(10); }void Receive_Byte(void) { uint j; R_word = 0x00; TSDA_IO_IN(); TSCL_IO_OUT(); delay_us(10); for(j=0;j<8;j++) { R_word = R_word << 1; TSCL=0; delay_us(10); if((RTSDA)) R_word+=1; delay_us(10); TSCL=1; delay_us(10); } } void I2C_75_write(uchar W_addruchar dat) { delay_us(10); Start(); Send_Byte(0x90); ACK(); Send_Byte(W_addr); ACK(); Send_Byte(dat); ACK(); Stop(); } void I2C_75_Read(uint R_addruchar n) { uchar i=0; Start(); Send_Byte(0x90); ACK(); Send_Byte(R_addr); ACK(); Start(); Send_Byte(0x91); ACK(); Receive_Byte(); ACK_0(); read_buffer_iic[0] = R_word ; Receive_Byte();ACK_0(); read_buffer_iic[1] = R_word ; NOACK(); Stop(); } //读取温度并处理数据void readTEMP(void) { I2C_75_write(0x010x00); I2C_75_Read(02); delay_us(10); tempH=read_buffer_iic[0]; if((tempH&0x80)==0x80) { tempH-=0x01; tempH=~tempH; zhengfuflag=1; } //temp= read_buffer_iic[0] + (uint)(read_buffer_iic[1]*0.0625*0.0625); temprd= (float)tempH+ (float)(((read_buffer_iic[1]>>4)&0x0f)*0.0625); if(zhengfuflag==1){floattohex(0-temprd);}//??
ministm32板子大字体显示:现在换了4.3寸的,24*24的字体太小了,想换32*32或者更大的,看了很多帖子,也换了很多方法去制作字库,可是一直显示不出来