- 博客(7)
- 收藏
- 关注
原创 I2C实验中SDA和SCL部分理解
在发送数据的时候(一般是发送8位的数据),在数据发送结束前因为是主机向从机发送数据(8个时钟周期),所以是主机在控制SDA,数据发送完之后,主机要等待从机的应答,此时主机会释放总线交由从机控制(第9个时钟周期),从机会通过将SDA置0或置1来发送应答或非应答。在读操作的时候,主机从从机读取数据,此时从机会向主机发送数据,所以SDA由从机控制,在发送完数据后,从机会等待主机发送应答位,此时SDA的操控会交于主机。.I2C中的SCL(时钟)一般都是由主机控制的,SDA(数据线)一般都是由主机和从机轮流控制的。
2025-03-01 15:00:51
483
原创 串口通信RI和TI该如何使用
当只需要PC端向单片机发送数据的时候每次发送完需要将RI置0,此时不需要配置TI(如果要使用printf函数的 情况下除外,因为printf函数要调用putchar函数,putchar函数需要等待TI置1,此时让TI一直置1即可)。当需要单片机向pc端发送数据的时候,需要每次在发送完数据后将TI置0.当单片机向PC端发送完一帧完整的数据后TI会被硬件自动置1,需要用软件手动置0,方便下一次的发送。当单片机接收完一帧完整的数据后RI会被硬件自动置1,需要用软件手动置0,方便下一次的接收。
2025-02-28 20:06:43
257
原创 malloc动态分配数组内存
if (arr == NULL) { printf("申请空间失败!return -1;}一般要搭配着使用来判断是否分配成功。//字节的大小 在堆空间开辟的数组空间。还有很重要的一点是在最后还要释放空间,用free(arr),不然会一直占用电脑空间。动态分配数组空间:当不确定需要多少空间时,可以根据最后得到的数组长度分配空间。其中arr是数组变量。
2024-12-19 16:35:55
165
原创 c语言中左移和右移运算的规则
右移(>>)正数一般都看作是逻辑运算(进来的数都是0),负数要用算数运算,如果符号位为1,则进来的数为1,用补码右移之后要进行逆运算得到原码。左移(
2024-12-12 11:10:28
261
原创 位域中结构体大小的计算
(1)当位域中的成员没有赋予位数时,结构体的大小等于所有成员类型的总和(字节数)。(2)当结构体中的成员被赋予位数时:①当所有成员是同一类型时,结构体的大小等于该类型的大小。②当结构体中有不同的类型的成员时,该结构体的大小等于成员中最大类型的大小乘于所有类型的种类(不考虑各个类型的数量)。注:当赋予的位数大于当前类型的字节数时,按最大的类型字节数扩增。
2024-12-11 15:29:04
344
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅