6

回答

sprintf和printf有什么区别,返回值有什么作用?

开心撸代码 2020-07-10 阅读:223

5

回答

对于12hz的晶振,如果要求一秒间隔,那么计时器工作方式1中,脉冲次数65536次,溢出了也达不到一秒,这时候该怎么办呀

322dd87a29ae1d25 2020-07-08 阅读:280

1

回答

KEIL查看汇编语言遇到的问题(?C?ULDIV)                                                                           (?C?ULCMP)                                                                                (?C?LMUL)(?C?UIDIV)不太明白上面四个子程序的含义

2640dcea5f139c27 2020-07-08 阅读:310

1

回答

使用esp8266,在sta模式下tcp连接遇到这个问题,一直没有找到答案。IPMOD=1是什么问题,下面是我AT的调试的过程。readyWIFI CONNECTEDWIFI GOT IPAT+CWJAP="RCWIFI""1968087624"WIFI DISCONNECTWIFI CONNECTEDWIFI GOT IPOKAT+CWMODE=1OKAT+CIPMUX=0OKAT+CIPSTART="TCP""192.168.1.145"1234ERRORCLOSEDAT+CIPSTART="TCP""192.168.1.133"9999CONNECTOKAT+CIPMODE=1OKAT+CIFSR+CIFSR:STAIP"192.168.1.190"+CIFSR:STAMAC"5c:cf:7f:20:4c:b4"OKAT+CIPSEND=50IPMODE=1ERRORAT+CIPSEND=50IPMODE=1ERRORAT+CIPSEND=50IPMODE=1

99a849f43b36f67e 2020-07-08 阅读:352

6

回答

各位大神你们好,我用键阵控制数码管显示,摁第一个键显示零    第二个键显示1 依次类推。我发现个问题第一个键显示0的时候正常但是摁第二个键显示1的时候数码管仅有一点点光基本上看不出来亮   。但是我从别的数字切换到1的时候就是正常的 。唯独从0切换到1的时候这样,而且每次都是这样。   我用的是共阴数码管。

5b9b8827fb6cf6de 2020-07-07 阅读:86

3

回答

单片机的二极boot,一般会占用多少资源,如flash ram

一笔之名也 2020-07-07 阅读:87

3

回答

现在linux的BootLoader以uboot最为流行。MCU级别的BootLoader有那些通用开源的项目推荐。

Angel_YY 2020-07-07 阅读:120

11

回答

为什么进入单片机中断后,需要再给定时器赋值?

f034452e22d219a4 2020-07-06 阅读:143

5

回答

拜托拜托!!!有没有用STM32f103编写使用光电开关(E18-D50NK)的代码,我学习学习!!  拜托拜托​

1c76bb7d903d8859 2020-07-05 阅读:189

1

回答

rc522的spi初始化 (使用的是定时计数器T1)    TMOD = 0x21;                // T1设置为8位自动重装载定时器                            SCON = 0x50;                // 串口工作在模式1:8位UART波特率可变,且禁止接收(0x40)    TH1 = 0xE8;                        // 单片机小精灵V1.3算出的2400波特率且波特率  11.0592MHZ    TL1 = TH1;                        // 加倍时的定时器设置值。    PCON = 0x80;                // 设置为波特率加倍    EA = 1;                                // 开总中断    //ES = 1;                            // 开串口中断   TR1 = 1;                    // 定时器1开启计数rc522的程序已经调试好了,as608指纹模块的程序也调试好了,但是两个合并起来就出问题。在rc522的程序上添加as608的初始化(使用的是定时计数器T2)    //SCON=0x50;   //UART方式1:8位UART;   REN=1:允许接收     T2CON=0x30;   //SMOD=0:波特率不加倍      TH2=0xFF;     TL2=0xDC;            RCAP2H=TH2;    RCAP2L=TL2;    //  EA=1;    TR2=1;添进去rc522的串口就不正常了,读取的内容就不对,本来是四位,现在只读出来一位,内容还不对。感觉是这两个初始化会冲突,各位帮看看吧。

82cb1efad256da02 2020-07-05 阅读:61

0

回答

网上说TACLR置位后,会复位时钟分频,和计数模式的设置, 我在测试时,无论加没加置位TACLR,程序都运行一样的结果,如果置位TACLR后有复位,结果应该是不一样的,所以我有点迷惑。麻烦有仿真器的大佬,帮忙测试一下,TACLR置位后对设置好的TACTL寄存器的影响。这个软件仿真不能看出来,所以希望有硬件仿真器的朋友帮一下忙。

1e0b6f4871c91ea2 2020-07-05 阅读:75

10

回答

C语言中为什么字符串通常都要多一位?

勇敢的芯 2020-07-05 阅读:120

5

回答

STM32F429和407差别大么,选择哪款比较好?

艾艾小潘 2020-07-05 阅读:466

2

回答

有做过485总线接多个传感器的老哥吗?现在遇到一个情况,就是同时在总线上同时接多个传感器,会有传感器没有返回数据帧,如果把这个没有返回数据帧的传感器,只把他自己接到总线上,却正常返回数据。有老哥知道这是咋回事吗?

6d56fca1168ae3c6 2020-07-04 阅读:51

0

回答
scaler Ic的书本推荐 单片机综合应用

scaler Ic的书本推荐本人从事显示器的主板开发工作,有没有讲scaler ic的书可以推荐的呢,关于scaler ic 的内部架构,工作原理等

d8b3256b3acd9763 2020-07-04 阅读:36

2

回答

有一个vee引脚使用时是接地还是接负压好,这两种接法有什么区别

yhj416606438 2020-07-04 阅读:124

3

回答

如何系统进行嵌入式开发的学习?本人大二,目前想学习嵌入式开发,求大佬告知如何系统学习嵌入式以及所需的相关知识。谢谢

9b0202806ee1d47e 2020-07-03 阅读:46

1

回答
L6235PD,引脚定义怎么控制 单片机综合应用

Vref---,Diag---, EN---高电平使能,低电平无效,Fwd/Rev---高电平正转,低电平倒转,Brake---, Tacho---, H1---读取霍尔1 H2---读取霍尔2 H3---读取霍尔3, 上面是我看出来得东西,有几个确实没看懂,大家帮忙看下是什么定义,怎么控制呢?使用得芯片是L6235PD,

a2605 2020-07-02 阅读:290

2

回答

哪位能共享一下猫头鹰OWL IOT32v开发板的资料? 之前的链接都失效了

homeway 2020-07-01 阅读:129

6

回答

#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar tempnumklnum;uchar code table[]={"18B20 OKTL"};char shangxiaxian[2]={-1010};char a;sbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;sbit LCD_RW=P2^5;sbit lcdrs=P2^6;sbit lcden=P2^7;sbit Beep=P3^0;sbit led=P3^1;sbit DQ=P3^7;    /@@*液晶显示屏的延时程序*/void delay(uint z){uint xy;for(x=z;x>0;x--)    for(y=110;y>0;y--);}                 /@@*温度传感器的延时程序*/void Delay1(uint y){uint x;for( ;y>0; y--)  {   for(x=110;x>0;x--);  }}                 /@@*蜂鸣器,18B20写数据函数的延时程序*/void delay2(uint a){while(--a);}                                       /@@*温度传感器初始化函数*/void init_18B20(){DQ=1;delay2(8);DQ=0;delay2(90);DQ=1;_nop_();_nop_();delay2(100);DQ=1;}                  /@@*温度传感器写字节命令函数*/void DS18B20xiezijie(uchar date){uchar i;for(i=0;i<8;i++)  {   DQ=0;                                      //在写入一位数据之前先把总线拉低         DQ=date&0x01;                   //写入一个数据,从最低位开始写         delay2(5);                               //延时         DQ=1;                                      //将总线拉高,等待第二位数据写入         date>>=1;                              //右移一位,写入第二位数据         }}                                                          /@@*温度传感器读字节命令函数*/uchar DS18B20duzijie(){uchar idat=0;DQ=1;_nop_();for(i=0;i<8;i++)  {   DQ=0;                  //先将总线拉低         _nop_();         _nop_();         dat>>=1;         DQ=1;                                      //然后释放总线         _nop_();                         //延时一下等待数据稳定         _nop_();                                 if(DQ)         dat|=0x80;                             //读取数据,从最低位开始读取         delay2(30);                             //读取完之后等待一下,再接着读取下一个数         DQ=1;  }return dat;                        //返回所读到的温度}                                                        /@@*写温度转换命令函数*/void DS18B20ChangTemp(){init_18B20();Delay1(1);DS18B20xiezijie(0xcc);   //跳过ROM操作命令DS18B20xiezijie(0x44);   //温度转换命令}                                                          /@@*读温度命令函数*/void DS18B20ReadTempCom(){init_18B20();Delay1(1);DS18B20xiezijie(0xcc);   //跳过ROM操作命令DS18B20xiezijie(0xbe);   //发送读取温度命令}                                                          /@@*读温度函数*/int DS18B20ReadTemp(){  inttemp=0;  uchartmhtml;DS18B20ChangTemp();           //先写入转换命令DS18B20ReadTempCom();     //然后等待转换完成后发送读取温度命令tml=DS18B20duzijie();             //读取温度值共16位,先读低字节tmh=DS18B20duzijie();           //再读高字节temp=tmh;temp<<=8;temp|=tml;return temp;                              /@@*液晶屏写指令函数*/}void write_com(uchar com){lcdrs=0;lcden=0;LCD_RW=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}                                                          /@@*液晶屏写指令函数*/void write_com2(int com){lcdrs=0;LCD_RW=0;lcden=0;delay(5);P0=com;delay(5);lcden=1;delay(5);  lcden=0;P0=(com&0x0f)<<4;delay(5);lcden=1;delay(5);lcden=0;}                                                          /@@*液晶屏写数据命令函数*/void write_data(char date){lcdrs=1;LCD_RW=0;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;lcdrs=1;LCD_RW=0;lcden=0;P0=(date&0x0f)<<4;       //一次写入4位delay(5);lcden=1;delay(5);lcden=0;}                                                          /@@*液晶屏初始化函数*/void init(){lcden=0;write_com(0x28);write_com2(0x28);write_com2(0x0c);write_com2(0x06);write_com2(0x01);write_com2(0x80);}                                                          /@@*报警上下线处理函数*/void write_hl(uchar addchar date){uchar baishige;if(date<0){date=-date;}bai=date/100;shi=date%100/10;ge=date%100%10;write_com2(0x80+0x40+add);write_date(0x30+bai);write_date(0x30+shi);write_date(0x30+ge);}                                                        /@@*报警上下线处理函数*/void write_hl1(uchar addchar date){uchar baishige;if(date<0){date=-date;}bai=date/100;shi=date%100/10;ge=date%100%10;write_com2(0x80+add);write_date(0x30+bai);write_date(0x30+shi);write_date(0x30+ge);}                                                        /@@*液晶屏显示函数,显示温度值*/void Lcdxianshi(int temp){uchar sz[4]={0000};unsigned char datas[]={00000}; //定义数组float tp;if(temp<0)                //当温度值为负数{write_com2(0x80+0x40);    //写地址80表示初始地址write_data('-');          //显示负temp=temp-1; //因为读取的温度是实际温度的补码,所以减一,再取反求出原码temp=~temp;tp=temp;temp=tp*0.0625*100+0.5}else{  write_com2(0x80+0x40);  //写地址80表示初始地址  write_data('+');                    //显示正  tp=temp;  //因为数据处理有小数点,所以将温度赋给一个浮点型变量,如果温度是正,那么正数的原码就是补码本身  temp=tp*0.0625*100+0.5;  }datas[0]=temp/1000;                       //百位datas[1]=tem%10000/1000;          //十位datas[2]=temp%1000/100;       //个位datas[3]=temp%100/10;                          //小数write_com2(0x80+0x40+1);write_data('0'+datas[0]);write_com2(0x80+0x40+2);write_data('0'+datas[1]);write_com2(0x80+0x40+3);write_data('0'+datas[2]);write_com2(0x80+0x40+4);write_data('.');write_com2(0x80+0x40+5);write_data('0'+datas[3]);a=(datas[0]*100+datas[1]*10+datas[2]);  //用于温度的比较值write_hl(13shangxiaxian[1]);  //显示报警上限write_hl1(13shangxiaxian[0]);      //显示报警下限}                                                                         /@@*按键处理函数,用于设置温度报警值*/void key(){if(k1==0)  {  delay(5);  if(k1==0)  //温度报警下限加   {    shangxiaxian[0]++;          if(shangxiaxian[0]==127)          shangxiaxian[0]=126;          write_hl1(13shangxiaxian[0]);         }   }    if(k2==0)  //温度报警下限减            {              delay(5);                    if(k2==0)                    {                     shangxiaxian[0]--;                     if(shangxiaxian[0]==-56)                     shangxiaxian[0]=-55;                     write_hl1(13shangxiaxian[0]);                    }                   }          if(k3==0)  //温度报警上限加            {             delay(5);                   if(k3==0)                    {                      shangxiaxian[1]++;                      if(shangxiaxian[1]==127)                      shangxiaxian[1]=126;                      write_hl(13shangxiaxian[1]);                     }                   }                    if(k4==0)  //温度报警上限减                    {                     delay(5);                     if(k4==0)                     {                      shangxiaxian[1]--;                      if(shangxiaxian[1]==-56)                      shangxiaxian[1]=-55;                      write_hl(13shangxiaxian[1]);                     }                    }         }void main(){intb;init();led=0;for(num=0;num<11;num++)   //让液晶屏显示“18B20 OK TL”{write_data(table[num]);delay(20);  }write_com2(0x80+0x40+9);write_data('T');write_com2(0x80+0x40+10);write_data('H');while(1)  {   key();         Lcdxianshi(Ds18B20ReadTemp());         delay(100);         if(shangxiaxian[0]<0)         {           write_com2(0x80+12);           write_data('-');         }  else   {    write_com2(0x80+12);          write_data('+');         }   if(shangxiaxian[1]<0)         {         write_com2(0x80+0x40+12);         write_data('-');    }         else         {         write_com2(0x80+0x40+12);         write_data('+');         }           if(a>shangxiaxian[1])    //判断温度值与报警值的大小           {             write_com2(0x80+0x40+6);                   write_data('<');                   write_com2(0x80+0x40+7);                   write_data('L');           }          if(a>=shangxiaxian[0]&&a<=shangxiaxian[1]) //判断温度值与报警值的大小           {             write_com2(0x80+0x40+6);                   write_data('');                   write_com2(0x80+0x40+7);                   write_data('!');           }          if(a>shangxiaxian[0]||a>shangxiaxian[1])  //如果温度值在报警值之外,蜂鸣器响           {             for(b=0;b<1000;b++)                     {Beep=1;led=1;                      delay2(20);                      Beep=0;led=0;                      delay0(20);                      }                   }         }}

7d2dd1be943f13f2 2020-06-27 阅读:179
  • 帮助人数
  • 0
  • 获得赞数
  • 0
  • 一周积分
  • 0

每日任务

提问一次
100IC币
回答一次
30IC币

问题达人换一批

本月问答IC币兑换

排名
用户名
问答积分
可兑换IC币
1
938
20000
2
822
20000
3
710
15000
4
656
15000
5
526
10000
6
496
10000
7
372
8000
8
322
8000
9
322
8000
10
232
6000
11
168
4000
12
126
4000
13
120
4000
14
110
4000
15
88
2000
16
76
2000
17
72
2000
18
70
2000
19
66
2000
20
66
2000
21
62
2000
22
52
2000
23
46
1000
24
44
1000
25
40
1000
26
36
1000
27
36
1000
28
34
1000
29
26
0
< 123 >