模拟i2c收不到应答的问题

最近在用模拟i2c控制APDS9960芯片
但是i2c一直收不到应答信号
可以确定的是8位数据(高7位从机地址+写位)应该是正确的,但是第9位释放总先后就是收不到ack
测过波形  图如下
之前有过使用单片机的i2c模块控制同样的芯片,同样测过波形(ack后面还有其他数据,先不管)
实在不明白哪有不对的地方,希望各位大神能够指点指点
第一幅图是使用模拟i2c收不到ack的请况
第二幅图是原先使用单片机i2c模块控制有ack的情况
硬件平台有所变化图片图片

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
FPGA以I2C读取at24c128,接收不到应答信号

程序如下,程序一直停留在状态“1010”,也就是接收不到ACK,求各位大神帮忙 -------------------div 50M change to 1M----------- process(clk1,reset) variable Count:integer range 0 to 51; begin if reset = '0' then--异步清零信号 Count:=0; elsif(clk1='1' and clk1'event) then if Count=25 then i2cclk<='0'; Count:=Count+1; elsif Count=50 then Count:=0; i2cclk<= '1'; else Count := Count+1; end if; end if; end process; ------------------------------------------------------- -------------------I2C write--------------------------- process(i2cclk,reset) variable i_cnt :integer range 8 downto 0:=8 ; variable ack_cnt :integer range 0 to 8:=0 ; variable ack_time :integer range 0 to 100:=0 ; variable d_cnt :integer range 0 to 80:=0 ; variable machine_addr:std_logic_vector(7 downto 0):="10100000"; variable i2caddrh:std_logic_vector(7 downto 0):="00000000"; variable i2caddrl:std_logic_vector(7 downto 0):="10100000"; variable i2cdata:std_logic_vector(7 downto 0):="01010101"; variable i2cwr_one :std_logic:='0';-- variable i2cdata_temp :std_logic:='0';-- begin if reset = '0' then i2cstatewr<="0000"; machine_addr:="10100000"; i2cdata:="01010101"; i2caddrh:="00000000"; i2cdata:="01010101"; i_cnt:=8; d_cnt:=0; i2cwr_one:='0'; ack_cnt:=0; led<='1'; elsif(i2cclk='1' and i2cclk'event) then case i2cstatewr is when "0000"=>--init d_cnt:=d_cnt+1; if d_cnt=1 then i2cda<='1'; i2cclk_s<='1'; i2cstatewr<="0000"; elsif d_cnt=delay_cnt then d_cnt:=0; -- if i2cwr_one='0' then i2cstatewr<="0001"; -- else -- i2cstatewr<="0000"; -- end if; else i2cstatewr<="0000"; end if; when "0001"=>--i2c start d_cnt:=d_cnt+1; if d_cnt=1 then i2cda<='0'; i2cstatewr<="0001"; elsif d_cnt=delay_cnt then d_cnt:=0; i2cstatewr<="0011"; else i2cstatewr<="0001"; end if; -- when "0010"=> -- i2cclk_s<='0'; -- i2cstatewr<="0011"; when "0011"=>--i2c send machineaddr ,addrh,addrl,data d_cnt:=d_cnt+1; if d_cnt=1 then i2cclk_s<='0'; i2cstatewr<="0011"; elsif d_cnt=delay_cnt then d_cnt:=0; i_cnt:=i_cnt-1; i2cstatewr<="0100"; else i2cstatewr<="0011"; end if; when "0100"=> d_cnt:=d_cnt+1; if d_cnt=1 then if ack_cnt=0 then i2cda<=machine_addr(i_cnt); elsif ack_cnt=1 then i2cda<=i2caddrh(i_cnt); elsif ack_cnt=2 then i2cda<=i2caddrl(i_cnt); elsif ack_cnt=3 then i2cda<=i2cdata(i_cnt); end if; i2cstatewr<="0100"; elsif d_cnt=delay_cnt then d_cnt:=0; i2cstatewr<="0101"; else i2cstatewr<="0100"; end if; when "0101"=> d_cnt:=d_cnt+1; if d_cnt=1 then i2cclk_s<='1'; i2cstatewr<="0101"; elsif d_cnt=delay_cnt then d_cnt:=0; if i_cnt=0 then i_cnt:=8; i2cstatewr<="0110"; else i2cstatewr<="0011"; end if; else i2cstatewr<="0101"; end if; when "0110" => --ninth clock d_cnt:=d_cnt+1; if d_cnt=1 then i2cclk_s<='0'; i2cstatewr<="0110"; elsif d_cnt=delay_cnt then --delay_cnt then d_cnt:=0; i2cstatewr<="0111"; else i2cstatewr<="0110"; end if; when "0111"=> d_cnt:=d_cnt+1; if d_cnt=1 then i2cda<='1'; i2cstatewr<="0111"; elsif d_cnt=delay_cnt then d_cnt:=0; i2cstatewr<="1000"; else i2cstatewr<="0111"; end if; when "1000"=>--wait ack d_cnt:=d_cnt+1; if d_cnt=1 then i2cclk_s<='1'; i2cstatewr<="1000"; elsif d_cnt=delay_cnt then d_cnt:=0; i2cstatewr<="1001"; else i2cstatewr<="1000"; end if; when "1001"=> i2cdata_temp:=i2cda; if i2cdata_temp='1' then i2cstatewr<="1001"; else i2cstatewr<="1010"; end if; when "1010"=> d_cnt:=d_cnt+1; if d_cnt=1 then i2cclk_s<='0'; i2cstatewr<="1010"; elsif d_cnt=delay_cnt then d_cnt:=0; ack_cnt:=ack_cnt+1; if ack_cnt =3 then led<='0'; ack_cnt:=0; i2cstatewr<="0000"; else i_cnt:=8; i2cstatewr<="0011"; end if; else i2cstatewr<="1010"; end if; -- when "1000"=>--i2c stop -- i2cclk_s<='0'; -- i2cda<='0'; -- i2cstatewr<="1001"; -- when "1001"=>-- -- i2cclk_s<='1'; -- i2cstatewr<="1010"; -- when "1010"=> -- i2cda<='1'; -- i2cwr_one:='1'; -- i2cstatewr<="0000"; when others=> i2cstatewr<="0000"; end case; end if; end process;

单片机关于I2C的ack问题

**uchar I2C_SendByte(uchar dat, uchar ack)**函数其中与ack相关的部分是 **while(I2C_SDA && (ack == 1))**//等待应答,也就是等待从设备把I2C_SDA拉低 **{ b++; if(b > 200) ** //如果超过200us没有应答发送失败,或者为非应答,表示接收结束 **{ I2C_SCL = 0; I2C_Delay10us(); return 0; } }** I2C_SCL = 0; I2C_Delay10us(); 在main中有 **I2C_SendByte(0xa0, 1)**;//发送写器件地址 _**I2C_SendByte(addr, 1**_);//发送要写入内存地址 **I2C_SendByte(dat, 0)**_; //发送数据 为什么发送数据时 ack为0了不为1,以及这个ack代表什么意义,ack不是从机将sda下拉的信号吗?

NRF24L01如何才能保证接收到应答信号

我有一个主机设置为发送模式发送数据给从机,主机和从机都为自动应答模式,但是经常会出现从机接收到数据,但主机接收不到从机发送过来的应答信号。怎么才能保证主机能够收到从机的应答信号?

arm​9做主控板与stm32做从机,通信用I2C,如何实现stm32从机模式

小弟现在在做STM32 i2c作为从机模式,想使用arm​9做主控板与stm32做从机,通信用I2C,搞的头大,现有的都是主机模式,一直浏览各大网站,发现关于STM32 I2C作为从机的例子少之又少,不知道如何下手,请问哪位大神可以指点一下,有代码例程,感激不尽!!​!

STM32硬件I2C无响应是怎么回事

在做STM3W硬件I2C的时候在检查EV6时总是出不去,死在循环函数里面,不知道为什么![图片](https://img-ask.csdn.net/upload/201608/01/1470059370_105124.jpg)

stm32 v3.5固件库i2c的使用

在配置I2C时,7为应答,编译器报错,“I2C_AcknowledgeAddress_7bit”未定义。那他是怎么定义的呢

WINDOWS C SOCKET编程 recv()接收不到数据?

我的代码逻辑(C语言实现断点续传的demo)大概是 > 服务器将文件分片,每次向客户端只发送一个分片,只有等客户端返回应答才继续发送接下来的分片 现在我遇到的问题是 > 客户端发送的应答,能发送到套接字的输出缓冲区,可是,服务器这边却recv()不到这个应答 我想不到是什么原因,help me 代码 ``` //服务器 //保存上次下载标识 int id; //从tfp指向的文件即Temp.txt读取内容,默认为0,即从第一个片开始 id = fgetc(tfp); int idsize = sizeof(id); //需要一个接收客户端应答的缓冲区 char buffer[BUF_SIZE] = { 0 }; char *bp = buffer; printf("Server will send files to the client\n\n\n\n"); int recvLen = 0,sendLen=0; for ( i = 0; i < PIECE; i++) { //记录当前下载到哪一个片,保存到Temp.txt fputc(i, tfp); printf("the %d of for circle\n", i); //上次下载到哪里,这一次便从那里开始 if (sli[i].grade == id) { //每次发送一个分片 printf("\tserver will send the %d piece of the file\n",i+1); if ((sendLen = send(sock, dp[i], tsize, 0)) < 0) { printf("\tsend a mess to client had failed, and the successful bytes is:%d\n", sendLen); } else { printf("\tsend a mess to client was succeeded, and the successful bytes is:%d\n", sendLen); } /* *服务器每发送一个分片,必须根据客户端的应答进行判断 *1、客户端应答已收到(用字符'f'表示)——继续发送剩下的分片,并且显示传输进度 *2、客户端应答未收到(用字符'n'表示)——保存当前下载标识,结束传输 */ //recv()的作用是阻塞,因为要接收客户端的应答 printf("\t\twait to receive respond from client\n"); if ((recvLen = recv(sock, buffer, nCount, 0)) > 0) { printf("\tthe num to recv respond from client is %d,and the nCount is %d\n", i + 1, recvLen); } else { printf("receive respond failed! return:%d\n",recvLen); } //应答超时设置为6s,表示经过了6s以后,若客户端还没有应答,就不再等待该应答 //Sleep(6000); if (*bp=='f') { //若客户端已收到应答 //表示已发送完毕一个分片,下载标识+1,并且打印传输进度 printf("Server gets the respond from client\n"); printf("\tthe rate of transported procession now is:%d%%\n", i * 100 / PIECE); if (i % 10 == 0) printf("\n"); id++; } else if(*bp=='n') { //若客户端收不到应答 //也就是当前分片也发送失败,即当前下载标识不需要自增1——记录当前下载标识 printf("Server misses the respond from client\n"); fputc(i, tfp); break; } else { printf("nothing\n"); } if (id == PIECE) printf("\n传输完成!\n"); printf("\n"); } } ``` 客户端代码 ``` //客户端 /* *接收缓冲区是连续接受数据的 * 每次接收一个片就返回应答 * 同时写进文件(buffer->rfp) */ char buffer[BUF_SIZE] = { 0 }; //客户端用指向字符常量的指针来表示应答 char idNarr[2] = "n"; char idFarr[2] = "f"; const char *ip = idNarr; //该应答标识的实际长度 int len = sizeof(ip) / sizeof(const char *); //实际接收字节 int rLen = 0, i,nCount,fwLen; printf("\n\n\n\n"); for (i = 0; i < PIECE; i++) { printf("the %d of for circle\n",i); rLen = recv(clntSock, buffer, BUF_SIZE, 0); buffer[rLen] = '\0'; //检验是否从套接字的输入缓冲区接收到数据 printf("receive from server is %s,the length is %d\n",buffer,rLen); printf("ip point to the string is:%s\n",ip); //接收到数据就把应答标识标志为f ip =idFarr; printf("ip point to the string is:%s\n",ip); //发送应答标识,并检查是否发送成功 if ((nCount= send(clntSock, ip, len, 0))<0) { printf("send a mess to server had failed, and the successful bytes is:%d", nCount); } else { printf("send a mess to server was succeeded, and the successful bytes is:%d\n", nCount); } ip = idNarr; //将接收到的数据写入本地文件,并检查是否写入成功 if((fwLen = fwrite(buffer, 1, rLen, fp)) > 0) { printf("\tto write something into file of %d,and the nCount is %d\n", i + 1, rLen); } else { printf("fwrite failed!\n"); } } ```

udp客户端收不到服务端传来的消息

基于java udp客户端收不到服务端传来的消息是个什么情况? 抓包工具可以监测到服务端收到并作出了应答,防火墙也已经关闭了,求大神给解惑~

〖嵌入式〗ARM通过I2C总线跟从机通信,时序波形见图

芯片4412与从机通信,数据发送不了,波形图如下,7求解答![图片说明](https://img-ask.csdn.net/upload/201509/06/1441550412_285679.jpg)

java socket服务器接收不到客户端发来的消息

package socket; public class MySeverSocket { public static void main(String[] args) { new ServerListener().start(); } } **************************************** package socket; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import javax.swing.JOptionPane; public class ServerListener extends Thread { public void run (){ try { ServerSocket serverSocket = new ServerSocket(55555); while (true){ Socket socket = serverSocket.accept(); JOptionPane.showMessageDialog(null, "有客户端连接到了55555端口"); ChatSocket cs = new ChatSocket(socket); cs.start(); ChatManager.getChatManager().add(cs); } } catch (IOException e) { e.printStackTrace(); } } } *************************************** package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.Socket; public class ChatSocket extends Thread { Socket socket; public ChatSocket(Socket s) { this.socket = s; } public void out(String out) { try { socket.getOutputStream().write(out.getBytes("UTF-8")); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void run() { try { BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8")); String line = null; while ((line = br.readLine()) != null) { ChatManager.getChatManager().publich(this, line); } br.close(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } ******************************************************** package socket; import java.util.Vector; public class ChatManager { private ChatManager() {} private static final ChatManager cm = new ChatManager(); public static ChatManager getChatManager() { return cm; } Vector<ChatSocket> vector = new Vector<ChatSocket>(); public void add(ChatSocket cs) { vector.add(cs); } public void publich(ChatSocket cs,String out) { for(int i = 0;i<vector.size();i++){ ChatSocket csChatSocket = vector.get(i); if (!cs.equals(csChatSocket)) { csChatSocket.out(out); } } } } 安卓客户端连接与发送消息方法 public void connect(){ final AsyncTask<Void,String,Void> read = new AsyncTask<Void, String, Void>() { String iptext = ip.getText().toString(); @Override protected Void doInBackground(Void... params) { try { socket = new Socket(iptext,55555); writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); publishProgress("@success"); } catch (IOException e) { Toast.makeText(MainActivity.this,"连接失败",Toast.LENGTH_SHORT).show(); e.printStackTrace(); } try { String line; while ((line = reader.readLine()) != null){ publishProgress(line); } } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onProgressUpdate(String... values) { if (values[0].equals("@success")){ Toast.makeText(MainActivity.this,"连接成功",Toast.LENGTH_SHORT).show(); } text.append("别人说"+values[0]+"\n"); super.onProgressUpdate(values); } }; read.execute(); } public void send(){ try { // text.append("我说:"+editText.getText().toString()+"\n"); writer.write(editText.getText().toString()+"\n"); writer.flush(); editText.setText(""); } catch (IOException e) { e.printStackTrace(); } }

socket通信收不到响应

c写的socket,一般是正常的情况,偶尔出现请求发出去收不到任何响应也没有报错信息

netty 开发问题,客户端发了请求后收不到响应

package org.netty_client; import io.netty.bootstrap.Bootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioSocketChannel; public class Client { public void connect(String host,int port) { EventLoopGroup group = new NioEventLoopGroup(); try { Bootstrap strap = new Bootstrap(); strap.group(group); strap.channel(NioSocketChannel.class); strap.option(ChannelOption.TCP_NODELAY, true); strap.handler(new ChannelInitializer<SocketChannel>() { @Override protected void initChannel(SocketChannel arg0) throws Exception { arg0.pipeline().addLast(new ClientHandler()); } }); ChannelFuture future = strap.connect(host, port).sync(); future.channel().closeFuture().sync(); System.out.println("close"); } catch (InterruptedException e) { e.printStackTrace(); }finally { group.shutdownGracefully(); } } public static void main(String[] args) { new Client().connect("127.0.0.1", 8080); } } package org.netty_client; import java.io.UnsupportedEncodingException; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerAdapter; import io.netty.channel.ChannelHandlerContext; public class ClientHandler extends ChannelHandlerAdapter{ private ByteBuf buf; public ClientHandler() { String r = "first request"; byte[] req = r.getBytes(); buf = Unpooled.buffer(req.length); buf.writeBytes(req); System.out.println("send request:" + r); } public void channelActive(ChannelHandlerContext ctx) { ctx.writeAndFlush(buf); } public void channelkRead(ChannelHandlerContext ctx,Object msg) throws UnsupportedEncodingException { System.out.println(1); ByteBuf buf = (ByteBuf)msg; byte[] req = new byte[buf.readableBytes()]; buf.readBytes(req); String body = new String(req,"UTF-8"); System.out.println("receive response:" + body); } public void exceptionCaught(ChannelHandlerContext ctx,Throwable e) { e.printStackTrace(); ctx.close(); } } package org.netty_server; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioServerSocketChannel; public class Server { public void bind(int port) { EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup(); try { ServerBootstrap server = new ServerBootstrap(); server.group(bossGroup,workerGroup); server.channel(NioServerSocketChannel.class); server.option(ChannelOption.SO_BACKLOG, 1024); server.childHandler(new ChannelInitializer<SocketChannel>(){ @Override protected void initChannel(SocketChannel arg0) throws Exception { arg0.pipeline().addLast(new ServerHandler()); } }); ChannelFuture future = server.bind(port).sync(); System.out.println("启动服务端口:" + port); future.channel().closeFuture().sync(); System.out.println("close"); } catch (InterruptedException e) { e.printStackTrace(); }finally { bossGroup.shutdownGracefully(); workerGroup.shutdownGracefully(); } } public static void main(String[] args) { new Server().bind(8080); } } package org.netty_server; import java.io.UnsupportedEncodingException; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerAdapter; import io.netty.channel.ChannelHandlerContext; public class ServerHandler extends ChannelHandlerAdapter{ @Override public void channelRead(ChannelHandlerContext ctx,Object msg) throws UnsupportedEncodingException { ByteBuf buf = (ByteBuf)msg; byte[] req = new byte[buf.readableBytes()]; buf.readBytes(req); String body = new String(req,"UTF-8"); System.out.println("receive request:" + body); String r = "response"; byte[] re = r.getBytes(); ByteBuf resp = Unpooled.copiedBuffer(re); // resp.readBytes(re); System.out.println("send response:" + r); ctx.write(resp); } @Override public void channelReadComplete(ChannelHandlerContext ctx) { ctx.flush(); } public void exceptionCaught(ChannelHandlerContext ctx,Throwable e) { e.printStackTrace(); ctx.close(); } } 测试结果: send request:first request 启动服务端口:8080 receive request:first request send response:response 但是客户端没收到响应,有朋友能看下么,只是写个简单的例子而已

httpclient接收不到返回数据

![图片说明](https://img-ask.csdn.net/upload/201707/22/1500690435_151245.png) 返回是空![图片说明](https://img-ask.csdn.net/upload/201707/22/1500690578_125808.png)服务端是有值的,但是不知道为什么就是返回不到客户端。用response.getWriter();也没有办法输出,用response.getWriter();进行拼接响应头的形势就会报不是一个正规的json?请问怎么才能让客户端获取到我服务端发送的信息?

linux udp通信不成功,server收不到消息

仅仅是一个 示例,可是先执行server 后执行 client ,server还是没有收到消息。问题出在哪里呢 Server.c #include "server.h" #define PORT 2345 #define IP "192.168.0.114" int main (void) { int fd; struct sockaddr_in servaddr, cliaddr; char buf[BUFFER_SIZE]; socklen_t peerlen; //建立socket连接 fd = socket(AF_INET, SOCK_DGRAM, 0); if(fd == -1) { printf("fd error!\n"); return -1; } //设置sockaddr_in参数 bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(PORT); servaddr.sin_addr.s_addr = inet_addr(IP); //绑定 bind(fd, (struct sockaddr *)&servaddr, sizeof(servaddr)); if(bind < 0) { printf("bind error~!\n"); return -1; } //调用recvfroom,等待接收客户端数据 peerlen = sizeof(cliaddr); while(1) { printf("Begin recv!\n"); recvfrom(fd, buf, sizeof(buf), 0, (struct sockaddr *)&cliaddr ,&peerlen); printf("recv form client %s \n", buf); strcpy(buf, "Welcome to server"); sendto(fd, &buf, sizeof(buf), 0, (struct sockaddr *)&cliaddr ,peerlen); } close(fd); return 0; } client.c: #include "client.h" #define PORT 2345 #define IP "192.168.0.114" int main (void) { int fd; struct sockaddr_in servaddr; char buf[BUFFER_SIZE] = "Hello Server!"; //建立socket连接 fd = socket(AF_INET, SOCK_DGRAM, 0); if(fd == -1) { printf("fd error \n"); exit(-1); } //设置sockaddr_in参数 bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(PORT); servaddr.sin_addr.s_addr = inet_addr(IP); //向服务器发送消息 sendto(fd, buf, sizeof(buf), 0 ,(struct sockaddr *)&servaddr,sizeof(servaddr)); printf("Send message to Sever!\n"); //接收服务器消息 printf("Begin recv!\n"); recvfrom(fd, buf, sizeof(buf), 0 ,NULL ,NULL); if(recvfrom < 0) { printf("recv error!\n"); return 1; } printf("recv from Server %s \n", buf); close(fd); return 0; }

LTC2944 模拟IIC 驱动一直没成功

1.我用的是STM32模拟IIC驱动,代码从官网移植过来的,不过官网用的是arduino硬件IIC驱动的,我只是改成STM32模拟IIC,但是在测试的时候,IIC总线一直没有应答,硬件端的S+接的充电器,s-接的电池,IIC接口接STM3的IO口,下面是while循环,ltc2944和ltc2943的区别应该不大吧 ``` LTC2943_read_16_bits(LTC2943_I2C_ADDRESS, LTC2943_ACCUM_CHARGE_MSB_REG, &charge_code); LTC2943_read_16_bits(LTC2943_I2C_ADDRESS, LTC2943_VOLTAGE_MSB_REG, &voltage_code); LTC2943_read_16_bits(LTC2943_I2C_ADDRESS, LTC2943_CURRENT_MSB_REG, &current_code); //! Read MSB and LSB Current Registers for 16 bit current code LTC2943_read_16_bits(LTC2943_I2C_ADDRESS, LTC2943_TEMPERATURE_MSB_REG, &temperature_code); //! Read MSB and LSB Temperature Registers for 16 bit temperature code LTC2943_read(LTC2943_I2C_ADDRESS, LTC2943_STATUS_REG, &status_code); //! Read Status Register for 8 bit status code charge = LTC2943_code_to_mAh(charge_code, resistor, prescalarValue); //! Convert charge code to mAh if mAh units are desired. current = LTC2943_code_to_current(current_code, resistor); //! Convert current code to Amperes voltage = LTC2943_code_to_voltage(voltage_code); //! Convert voltage code to Volts temperature = LTC2943_code_to_celcius_temperature(temperature_code); //! Convert temperature code to celcius ``` 请问有人驱动成功的吗?

现金红包,SOCKS5 TCP协议 代理游戏,协商成功后,发送数据包却收不到返回数据!

SOCKS5协议成功后,发送数据收不到返回信息是什么情况 ![图片说明](https://img-ask.csdn.net/upload/201811/28/1543416049_625278.png) 我是HOOK的一个棋牌游戏的 ws2_32.connect,然后在里面调用下面的函数。 协商成功后,游戏会自动发送1个数据包,也就是图片上最后一个包,发送到代理服务器上后,就没有返回信息了。望解疑惑。 能搞定的,留下QQ号,我给你发个红包! int ConnectBySock5(SOCKET socket, string ip, u_short port) { char buf[512]; int rc; if (rc = WSAEventSelect(socket, 0, NULL))//这一个可以不用执行 { DebugPrint("Error %d : WSAEventSelect Failure!", WSAGetLastError()); } else { DebugPrint("Message : WSAEventSelect successfully!"); } unsigned long nonBlock = 0; if (rc = ioctlsocket(socket, FIONBIO, &nonBlock))// 这个真正修改为阻塞类型 { DebugPrint("Error %d : Set Blocking Failure!", WSAGetLastError()); } else { DebugPrint("Message : Set Blocking successfully!"); } struct TSock5req1 *proxyreq1; proxyreq1 = (struct TSock5req1 *)buf; proxyreq1->Ver = 5; proxyreq1->nMethods = 1; proxyreq1->Methods = 2;// m_proxyUserName != "" ? 2 : 0; DebugPrint("%d %d %d",buf[0], buf[1], buf[2]); //g_SendBufLen = 3; //memcpy_s(g_SendBuf, 1024, buf, g_SendBufLen); Send(socket, buf, 3); struct TSock5ans1 *proxyans1; proxyans1 = (struct TSock5ans1 *)buf; memset(buf, 0, sizeof(buf)); rc = Receive(socket, buf, sizeof(buf)); DebugPrint("proxyans1->Method = %d proxyans1->Ver = %d", proxyans1->Method, proxyans1->Ver); if (proxyans1->Method != 0 && proxyans1->Method != 2 || proxyans1->Ver != 5) { DebugPrint("ConnectBySock5 CONNECT_SERVER_FAIL1"); return CONNECT_SERVER_FAIL; } if (proxyans1->Method == 2) { int nUserLen = m_proxyUserName.length(); int nPassLen = m_proxyUserPwd.length(); buf[0] = 1; buf[1] = nUserLen; memcpy(buf + 2, m_proxyUserName.c_str(), nUserLen); buf[2 + nUserLen] = nPassLen; memcpy(buf + 3 + nUserLen, m_proxyUserPwd.c_str(), nPassLen); //g_SendBufLen = 3 + nUserLen + nPassLen; // memcpy_s(g_SendBuf, 1024, buf, g_SendBufLen); Send(socket, buf, 3 + nUserLen + nPassLen); struct TAuthans *authans; authans = (struct TAuthans *)buf; memset(buf, 0, sizeof(buf)); Receive(socket, buf, sizeof(buf)); if (authans->Ver != 1 || authans->Status != 0) { DebugPrint("ConnectBySock5 CONNECT_SERVER_FAIL2"); return CONNECT_SERVER_FAIL; } } struct TSock5req2 *proxyreq2; proxyreq2 = (struct TSock5req2 *)buf; proxyreq2->Ver = 5; proxyreq2->Cmd = 1; proxyreq2->Rsv = 0; proxyreq2->Atyp = 1; unsigned long tmpLong = inet_addr(ip.c_str()); unsigned short port1 = ntohs(port); memcpy((char*)&proxyreq2->other, &tmpLong, 4); memcpy((char*)(&proxyreq2->other) + 4, &port1, 2); //Send(socket, buf, sizeof(struct TSock5req2) + 5); //g_SendBufLen = 10; //memcpy_s(g_SendBuf, 1024, buf, g_SendBufLen); Send(socket, buf, 10); struct TSock5ans2 *proxyans2; memset(buf, 0, sizeof(buf)); proxyans2 = (struct TSock5ans2 *)buf; rc = Receive(socket, buf, sizeof(buf)); DebugPrint("len = %d Data = %s", rc, bytesToHexString((byte*)buf,10)); if (proxyans2->Ver != 5 || proxyans2->Rep != 0) { DebugPrint("ConnectBySock5 CONNECT_SERVER_FAIL3"); return CONNECT_SERVER_FAIL; } //修改socket为非阻塞类型 nonBlock = 1; if (rc = ioctlsocket(socket, FIONBIO, &nonBlock)) { DebugPrint("Error %d : Set Non-Blocking Failure!", WSAGetLastError()); //return rc; } else { DebugPrint("Message : Set Non-Blocking Successful!"); } //rc = Receive(socket, buf, sizeof(buf)); //DebugPrint("len = %d Data = %s", rc, bytesToHexString((byte*)buf, 10)); return SUCCESS; }

win7 下进行UDP通信测试发现UDP服务器无法接收到CLIENT的发送数据这是啥原因?

进行UDP数据通信的时候,UDP的客户端用WIRESHARK抓包,能很明显的看到数据发出来了,数据格式也是正确的,但是服务那边的就是接受不到数据,接受卡在接受哪里不动了。查看防火墙,防火墙也是关了的;该程序在WINXP下通信都是正确的,哪位大侠能给下解决方案?总觉得是WIN7在哪里设置有问题;另外我查看QQ的设置,开放该应用程序的UDP协议为开放所有协议,还是不行。

dsp28335iic发完要读取的数据地址以后无应答位产生

![图片说明](https://img-ask.csdn.net/upload/201601/20/1453287164_682053.png) ``` ```

关于用java搭服务器请求和应答的问题

搭一个简单的服务器是应该用的请求一个线程应答一个线程应答一个线程还是请求和应答轮换着来

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

定量遥感中文版 梁顺林著 范闻捷译

这是梁顺林的定量遥感的中文版,由范闻捷等翻译的,是电子版PDF,解决了大家看英文费时费事的问题,希望大家下载看看,一定会有帮助的

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

sql语句 异常 Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your

在我们开发的工程中,有时候会报 [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ------ 这种异常 不用多想,肯定是我们的sql语句出现问题,下面...

浪潮集团 往年的软件类 笔试题 比较详细的哦

浪潮集团 往年的软件类 笔试题 比较详细的哦

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

I2c串口通信实现加速度传感器和FPGA的交流

此代码能实现加速度传感器与FPGA之间的交流,从而测出运动物体的加速度。

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

eclipseme 1.7.9

eclipse 出了新的eclipseme插件,官方有下载,但特慢,我都下了大半天(可能自己网速差)。有急需要的朋友可以下哦。。。

Spring Boot -01- 快速入门篇(图文教程)

Spring Boot -01- 快速入门篇 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到【慕课网】手机 app,去找【Spring Boot 2.0 深度实践】的课程,令人开心的是,课程完全免费! 什么是 Spring Boot? Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot...

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

最简单的倍频verilog程序(Quartus II)

一个工程文件 几段简单的代码 一个输入一个输出(50Mhz倍频到100Mhz)

计算机组成原理实验教程

西北工业大学计算机组成原理实验课唐都仪器实验帮助,同实验指导书。分为运算器,存储器,控制器,模型计算机,输入输出系统5个章节

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

基于RSA通信密钥分发的加密通信

基于RSA通信密钥分发的加密通信,采用pycrypto中的RSA、AES模块实现

不同变质程度煤尘爆炸残留气体特征研究

为分析不同变质程度煤尘爆炸残留气体成分的特征规律,利用水平管道煤尘爆炸实验装置进行了贫瘦煤、肥煤、气煤、长焰煤4种不同变质程度的煤尘爆炸实验,研究了不同变质程度煤尘爆炸后气体残留物含量的差异,并对气体

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

jsp+servlet入门项目实例

jsp+servlet实现班级信息管理项目

winfrom中嵌套html,跟html的交互

winfrom中嵌套html,跟html的交互,源码就在里面一看就懂,很简单

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

python实现数字水印添加与提取及鲁棒性测试(GUI,基于DCT,含测试图片)

由python写的GUI,可以实现数字水印的添加与提取,提取是根据添加系数的相关性,实现了盲提取。含有两种攻击测试方法(高斯低通滤波、高斯白噪声)。基于python2.7,watermark.py为主

Xshell6完美破解版,亲测可用

Xshell6破解版,亲测可用,分享给大家。直接解压即可使用

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

相关热词 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行 c# 循环给数组插入数据 c# 多线程死锁的例子 c# 钉钉读取员工排班 c# label 不显示 c#裁剪影像 c#工作进程更新ui
立即提问