stm32f407控制ra8875 范例
时间: 2023-08-07 14:12:43 浏览: 159
使用STM32F407驱动RA8875控制器
5星 · 资源好评率100%
以下是一个基本的示例代码,演示如何使用STM32F407控制RA8875显示器。代码使用STM32F4 Discovery Board上的STM32F407芯片和RA8875显示器。
```c
#include "stm32f4xx.h"
#include "ra8875.h"
#define RA8875_CS_Pin GPIO_Pin_0
#define RA8875_CS_GPIO_Port GPIOC
#define RA8875_RST_Pin GPIO_Pin_1
#define RA8875_RST_GPIO_Port GPIOC
void delay_ms(uint32_t ms);
int main(void)
{
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = RA8875_CS_Pin | RA8875_RST_Pin;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOC, &GPIO_InitStruct);
// Reset RA8875
GPIO_SetBits(GPIOC, RA8875_RST_Pin);
delay_ms(100);
GPIO_ResetBits(GPIOC, RA8875_RST_Pin);
delay_ms(100);
GPIO_SetBits(GPIOC, RA8875_RST_Pin);
delay_ms(100);
RA8875_Init();
// Set screen orientation and clear screen
RA8875_SetOrientation(RA8875_PORTRAIT);
RA8875_ClearScreen(RGB565(0, 0, 0));
// Draw some shapes
RA8875_SetColor(RGB565(255, 0, 0));
RA8875_DrawCircle(160, 120, 50);
RA8875_DrawRectangle(50, 50, 230, 170);
RA8875_DrawTriangle(80, 30, 200, 30, 140, 150);
while(1)
{
// Main loop
}
}
void delay_ms(uint32_t ms)
{
volatile uint32_t nCount;
RCC_ClocksTypeDef RCC_Clocks;
RCC_GetClocksFreq(&RCC_Clocks);
nCount = (RCC_Clocks.HCLK_Frequency / 10000) * ms;
while(nCount--)
{
}
}
```
此示例使用RA8875显示器库,它包含在以下文件中:
- ra8875.c
- ra8875.h
- font_8x14.c
- font_16x26.c
要使用此示例,您需要确保正确设置了引脚和SPI通信。您可以在ra8875.h文件中根据您的硬件设置更改SPI和引脚配置。
阅读全文