void char_out(u8 font, u8 *str) { u8 *str_ptr; u8 glyph; glyph = ( u8 )*str; while(glyph != '\0' ) { str_ptr = fonts[font].ascii_code + ( glyph - fonts[font].ascii_beg) * fonts[font].ascii_height; refresh_assic_buffer(str_ptr); str++; glyph = ( u8 )*str; } }
时间: 2024-02-29 18:56:27 浏览: 62
这段代码定义了一个名为 `char_out` 的函数,其返回类型为 `void`,表示不返回任何值。函数有两个参数,一个是 unsigned 8-bit 类型的整数 `font`,另一个是指向 unsigned 8-bit 类型的一维数组的指针 `str`。
函数内部定义了两个变量,一个是指向 unsigned 8-bit 类型的一维数组的指针 `str_ptr`,另一个是 unsigned 8-bit 类型的整数 `glyph`。
首先,函数将 `str` 指针所指向的数据赋值给 `glyph` 变量。接着进入一个 while 循环,当 `glyph` 不为 '\0' 时,执行循环体内的语句。循环体内首先计算了 `str_ptr` 指针,该指针指向字体 `font` 中对应 `glyph` 字符的点阵数据。计算方式为:先将 `glyph` 减去字体 `font` 的 `ascii_beg`,然后乘上字体 `font` 的 `ascii_height`,最后加上字体 `font` 的 `ascii_code`,即可得到该字符的点阵数据。
接着,函数调用了静态函数 `refresh_assic_buffer()`,将 `str_ptr` 指向的点阵数据更新到 `assic_buffer` 数组中,然后将 `str` 指针向后移动一个单位,以便下一次读取字符。最后,函数将 `str` 指针所指向的数据赋值给 `glyph` 变量,以便进行下一次循环。
因此,这个函数的作用是根据指定的字体 `font`,将字符串 `str` 中的每个字符的点阵数据依次输出到 LED 灯上进行显示。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)