打印
[活动专区]

【N32G430开发板试用】OLED

[复制链接]
617|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 aple0807 于 2022-7-2 20:06 编辑

通过几天的学习,对G430的用法也比较熟悉的,再之前的基础上加个OLED屏测试一下,以后调试过程中需要的简单显示不用每次都通过串口打印了。手上的屏幕是SPI接口的,本程序使用SPI1连接显示屏,测试程序占用以下管脚:

控制脚配置
port_out_pin_make(oled_cs, PB, 6);
port_out_pin_make(oled_rst, PB, 7);
port_out_pin_make(oled_dc, PB, 8);

SPI脚配置
{GPIOB, GPIO_MODE_AF_PP, GPIO_NO_PULL, GPIO_SLEW_RATE_FAST, GPIO_DS_8MA, GPIO_AF2_SPI1, 1, GPIO_PIN_3},//SCK
{GPIOB, GPIO_MODE_AF_PP, GPIO_NO_PULL, GPIO_SLEW_RATE_FAST, GPIO_DS_8MA, GPIO_AF2_SPI1, 1, GPIO_PIN_4},//MISO
{GPIOB, GPIO_MODE_AF_PP, GPIO_NO_PULL, GPIO_SLEW_RATE_FAST, GPIO_DS_8MA, GPIO_AF1_SPI1, 1, GPIO_PIN_5},//MOSI

调试过程中出现了点状况,G430的SPI用法与其他有些区别,具体如下:
void bsp_spi_init(void)
{
        SPI_InitType SPI_InitStructure;
        intx_alloc();

        // 开启时钟
        intx_disable();
        RCC_APB2_Peripheral_Clock_Enable(RCC_APB2_PERIPH_SPI1);
        intx_enable();

        // SPI 配置
        SPI_InitStructure.DataDirection = SPI_DIR_DOUBLELINE_FULLDUPLEX;
        SPI_InitStructure.SpiMode = SPI_MODE_MASTER;
        SPI_InitStructure.DataLen = SPI_DATA_SIZE_8BITS;
        SPI_InitStructure.CLKPOL = SPI_CLKPOL_HIGH;
        SPI_InitStructure.CLKPHA = SPI_CLKPHA_SECOND_EDGE;
        SPI_InitStructure.NSS = SPI_NSS_SOFT;
        SPI_InitStructure.FirstBit = SPI_FB_MSB;
        SPI_InitStructure.CRCPoly = 7;
        SPI_InitStructure.BaudRatePres = SPI_BR_PRESCALER_128;

        SPI_Initializes(OLED_SPI, &SPI_InitStructure);
        // SPI_SS_Output_Enable(OLED_SPI);
        SPI_Set_Nss_Level(OLED_SPI, SPI_NSS_HIGH);
        SPI_ON(OLED_SPI);
}



软件SS模式,调用初始化后,需要调用以下两行之一才能正常开启SPI_ON。此处要特别注意,否则调用SPI_ON将开启失败。
SPI_SS_Output_Enable(OLED_SPI);
SPI_Set_Nss_Level(OLED_SPI, SPI_NSS_HIGH);

下面附上测试工程:
n32-g430-eval.rar (5.4 MB)
显示结果如下:


@安小芯


使用特权

评论回复
沙发
chenjun89| | 2022-7-3 09:41 | 只看该作者
恭喜楼主喜提开发板

使用特权

评论回复
板凳
trucyw| | 2022-7-3 15:49 | 只看该作者
恭喜楼主喜提开发板

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

309

帖子

2

粉丝