初级会员

- 积分
- 148
- 金钱
- 148
- 注册时间
- 2017-2-8
- 在线时间
- 39 小时
|

楼主 |
发表于 2019-6-8 09:43:40
|
显示全部楼层
OLED显示还是会乱码但是直接定义一个变量char *temp = "hello world";的话又可以正常显示
定义了一个全局变量usart1_data来存放串口接收到的数据
这是主函数里的while循环
[mw_shl_code=applescript,true]u8 *temp = &usart1_data;
ssd1306_clear_screen(0x00);
ssd1306_display_string(10, 10, (u8 *)temp, 12,1);
ssd1306_refresh_gram();
delay_ms(3000);[/mw_shl_code]
这是ssd1306_display_string的函数
[mw_shl_code=applescript,true]void ssd1306_display_string(uint8_t chXpos, uint8_t chYpos, const uint8_t *pchString, uint8_t chSize, uint8_t chMode)
{
while (*pchString != '\0') {
if (chXpos > (SSD1306_WIDTH - chSize / 2)) {
chXpos = 0;
chYpos += chSize;
if (chYpos > (SSD1306_HEIGHT - chSize)) {
chYpos = chXpos = 0;
ssd1306_clear_screen(0x00);
}
}
ssd1306_display_char(chXpos, chYpos, *pchString, chSize, chMode);
chXpos += chSize / 2;
pchString ++;
}
}[/mw_shl_code]
|
|