关于通过STM32实现显示屏显示文字的代码

   作为一个初学者,为了能在OLED显示屏上显示文字,我也是查找了许多的文件资料。

  这里我是通过B站江科大的视频学习的STM32编程,那也就通过他的源代码来说。市面上的OLED显示屏的分辨率一般都是128*64。而这也是显示屏行列光标的数量。通过程序点亮这些光标就可以实现对字符、文字的显示。

  那么废话不多说,这里我选择的字模软件为PCtolC2002,网上的字模软件也是很多的,大家随便搜一下就能得到。这里点开设置,像我这样调就行了。

   那么,我们生成字模“原神启动!1 ",1后面有一个空格,等会有用。然后,我们在OLED_font.h里面新建一个阵列。char F16X24[][32]={};把下方得到的字模复制粘贴到里面。然后在OLED.c里面

void OLED_ShowCHinese(uint8_t Column,uint8_t Line , char Char)
{          
    uint8_t i;
    OLED_SetCursor((Line - 1) * 2, (Column - 1) * 16);        //设置光标位置在上半部分
    for (i = 0; i < 16; i++)
    {
        OLED_WriteData( OLED_F16X24[Char*2][i]);            //显示上半部分内容
    }
    OLED_SetCursor((Line - 1) * 2 + 1, (Column - 1) * 16);    //设置光标位置在下半部分
    for (i = 0; i < 16; i++)
    {
        OLED_WriteData( OLED_F16X24[Char*2+1][i]);        //显示下半部分内容
    }
}

这样写。为什么这样写呢。开始分析:

  大家在设置的时候肯定看到了取模演示的,他的光标是先写上半部分然后写下半部分。也就是说把字分为了两行来写。那么一开始给光标定点,第1行第1列的上半起始光标点为(0,0),下半起始光标点为(1,0)。又因为每一个字是16*16的光标来组成的。所以上半与下半光标定点程序为

OLED_SetCursor((Line - 1) * 2, (Column - 1) * 16);//上半
OLED_SetCursor((Line - 1) * 2 + 1, (Column - 1) * 16);//下半

  至于两个for循环则是把你的FONT文件中的字模阵列上半16个下半16个按顺序显示出来罢了。不过要注意的是你的字模是从0开始计数的。所以在第一行第一列显示”原“这个字就是这样来写:

OLED_ShowCHinese(1,1,0);

  大家也可以根据自己的需求来改进OLED_WriteData的写法。我这样就只能一个字一个字的来编辑,很麻烦。像江科大老师通过ASCLL码的方式来写字符的显示程序就会使复杂的程序简单话。要是能把中国汉字编辑成表的话,那个时候就能想显示什么就显示什么。(想多了,哈哈哈哈~)

然后呢大家在显示1这个数字的时候是不是这样写的:

OLED_ShowCHinese(1,1,5);

  结果是不是出乎意料呢?但是当你回到FONT文件中将1的阵列像如图调换一下就会发现:“哦,原来如此。”

再仔细看看上面的解释,搞不懂的也能搞懂了。

  好了,这些就是我这个初学者在刚接触显示屏显示文字的时候是如何做到文字显示的步骤与思路。最后,这个程序还有一点小小的瑕疵,如果有人像我这样写的程序,看看能不能从上面的思路把程序给改正过来,加油!

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值