- 博客(4)
- 收藏
- 关注
原创 非阻塞tcp连接示例及getsockopt的作用
这里,select 只能告诉我们 socket 的状态发生了变化,但具体是什么变化,还需要进一步的检查。在非阻塞模式下,当我们调用 connect 函数时(当我们尝试建立连接时),如果连接不能立即建立,connect不会阻塞等待连接完成。level 指定了选项的类型,optname 指定了要检索的选项,optval 是指向保存选项值的缓冲区的指针,而 optlen 是指向缓冲区长度的指针。在 select 的情况下,这意味着我们需要使用其他方法,如 getsockopt,来获取更具体的错误信息或状态确认。
2023-12-02 11:37:12
1432
原创 snprintf_truncated_s
snprintf_truncated_s 函数,是为了在给定的缓冲区大小限制内格式化字符串。与标准的snprintf 函数不同,snprintf_truncated_s 会确保在缓冲区大小限制内输出完整的格式化字符串。而使用 snprintf_truncated_s 函数则可以避免这种情况的发生,保证输出的字符串不会超过给定的缓冲区大小。需要注意的是,snprintf_truncated_s 函数是 C11 标准中引入的函数,因此在使用该函数时需要确保编译器支持 C11 标准。
2023-12-02 10:59:44
884
原创 IIC示例(硬件IIC和软件IIC)
硬件IIC对于软件来说相对简单一点,不用编写复杂的代码,硬件IIC对应芯片上的IIC外设,有相应的IIC驱动电路,其所使用的IIC管脚也是专用的。数据有效性:数据传输过程中,当SCL=1高电平时,数据线SDA必须保持稳定,要么保持高电平,要么保持低电平,这期间不能有电平跳变,只有在时钟线上的信号为低电平时,数据线上的高电平或低电平状态才允许变化。IIC是一个串行,半双工,同步的常用的总线协议,IIC总线有两根双向的信号线一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步。
2023-09-12 17:46:41
1117
原创 Linux下控制GPIO的三种方法
将代码中的X替换为相应的GPIO引脚编号,然后使用libgpiod提供的函数来控制GPIO引脚的方向和值。使用libgpiod库的好处是它提供了更灵活和高效的GPIO操作方式,适用于对性能要求较高的应用。将代码中的gpioX和Y替换为相应的GPIO引脚编号和极性。上述介绍了在Linux系统中控制GPIO引脚的三种常见方法:sysfs接口、GPIO键盘驱动和libgpiod库。根据实际需求和平台支持,可以选择合适的方法来控制和监视GPIO引脚。将代码中的XX替换为相应的GPIO引脚编号,即可进行控制。
2023-09-06 10:00:09
4786
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人