增加oled上的文本大小(Cortex M3,Stellaris LM3S6965)

时间:2013-01-03 08:44:20

标签: c text cortex-m3

我正在使用Cortex M3,Stellaris®LM3S6965评估板。我正试图在oled屏幕上显示文本。但我不知道如何增加文字大小。

有人知道怎么做吗?

我目前的代码:

    #include "inc/hw_types.h"
#include "driverlib/debug.h"
#include "driverlib/sysctl.h"
#include "drivers/rit128x96x4.h"


//*****************************************************************************
//
// The error routine that is called if the driver library encounters an error.
//
//*****************************************************************************
#ifdef DEBUG
void
__error__(char *pcFilename, unsigned long ulLine)
{
}
#endif

//*****************************************************************************
//
// Display scrolling text plus graphics on the OLED display.
//
//*****************************************************************************
int
main(void)
{
    unsigned long ulRow, ulCol, ulWidth, ulHeight;
    volatile int iDelay;
    unsigned char *pucRow;
    static char pucHello[] =
    {
        "                      "
        "Current selected timezone: +2 GMT - Brussels"
        "                      "
    };

    //
    // Set the clocking to run directly from the crystal.
    //
    SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
                   SYSCTL_XTAL_8MHZ);

    //
    // Initialize the OLED display.
    //
    RIT128x96x4Init(1000000);

    // Simple scrolling text display
    //
    ulCol = 0;
    while(1)
    {
        //
        // Display the text.
        //
        RIT128x96x4StringDraw(&pucHello[ulCol++], 8, 8, 11);

        //
        // Delay for a bit.
        //
        for(iDelay = 0; iDelay < 100000; iDelay++)
        {
        }

        //
        // Wrap the index back to the beginning of the string.
        //
        if(ulCol > 53)
        {
            ulCol = 0;
        }
    }
}

3 个答案:

答案 0 :(得分:2)

当然,您无法保证可以。

嵌入式系统在字体使用方面通常没有很大的自由度;动态缩放非常昂贵,许多字体都是处理为特定大小的预渲染二进制位图。

您需要查看由rit128x96x4.h标头定义的API:因为这似乎是特定于显示的功能。

你没有说你目前获得的字体有多大;在小到128x96的显示器上,我不希望有任何超大字体,因为通常提供一个小字体以最大化您可以在屏幕上显示的文本量会更有用。

更新:如果this random Google hit准确无误,那么提供的图形API并不完全丰富,似乎无法切换字体。

答案 1 :(得分:2)

StellarisWare下的grlib \ fonts文件夹中有一些字体。您可以使用API​​调用GrContextFontSet()

来更改字体

答案 2 :(得分:1)

字体通常只是位图数组。您可以重新定义所需字体的位图。如果你想增加大小,那么你可能还需要改变其他常量,这样绘图例程就知道如何在渲染时对字符进行空格化。