IIC_WriteByte(FONT8X16[c16+i]); } for(i=0;i<8;i++) { IIC_WriteByte(FONT8X16[c16+i+8]); } IIC_Stop(); }解释每一个代码
时间: 2023-05-30 18:05:26 浏览: 121
该代码是一个函数,用于在OLED屏幕上显示16x16点阵字体。下面是对每行代码的解释:
1. void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size)
这是函数的定义,包含了四个参数:x, y, chr和Char_Size。x和y是屏幕上字体的起始坐标,chr是要显示的字符串,Char_Size是字体大小。
2. uint8_t c16, i;
在函数内部定义了两个变量:c16和i。
3. IIC_Start();
发送I2C起始信号。
4. IIC_SendByte(0x78);
发送OLED屏幕的I2C地址。
5. IIC_SendByte(0x40);
设置OLED屏幕的列地址。
6. IIC_SendByte((x/8)+0x80);
设置OLED屏幕的起始列地址。
7. IIC_SendByte(y+0x40);
设置OLED屏幕的起始行地址。
8. for(c16=0;c16<2;c16 )
循环两次,因为每个字符需要16个点阵来显示。
9. for(i=0;i<8;i )
循环8次,因为每个字符的前8个点阵和后8个点阵需要分开发送。
10. IIC_WriteByte(FONT8X16[c16*16+i]);
发送当前字符的前8个点阵。
11. for(i=0;i<8;i )
循环8次,因为每个字符的前8个点阵和后8个点阵需要分开发送。
12. IIC_WriteByte(FONT8X16[c16*16+i+8]);
发送当前字符的后8个点阵。
13. IIC_Stop();
发送I2C停止信号。
以上是函数内部的每一行代码的解释。
阅读全文