stm32显示屏显示代码
时间: 2023-05-31 22:06:58 浏览: 171
以下是使用STM32控制显示屏显示的示例代码:
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
void delay_ms(uint32_t ms)
{
uint32_t i;
for(i = 0; i < ms; i++)
{
uint32_t j;
for(j = 0; j < 1000; j++);
}
}
void lcd_write(uint8_t data)
{
GPIO_Write(GPIOA, GPIO_Pin_1, GPIO_Pin_RESET); // RS = 0
GPIO_Write(GPIOC, GPIO_Pin_0, GPIO_Pin_SET); // enable = 1
GPIO_Write(GPIOB, (data << 8)); // write data
GPIO_Write(GPIOC, GPIO_Pin_0, GPIO_Pin_RESET); // enable = 0
}
void lcd_init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
// Configure RS pin
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
// Configure enable pin
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
// Configure data pins
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_Write(GPIOA, GPIO_Pin_1, GPIO_Pin_RESET); // RS = 0
GPIO_Write(GPIOC, GPIO_Pin_0, GPIO_Pin_RESET); // enable = 0
delay_ms(100);
lcd_write(0x38); // 8-bit, 2-line display
lcd_write(0x06); // auto-increment cursor
lcd_write(0x0C); // display on, cursor off, blink off
lcd_write(0x01); // clear display
delay_ms(2);
}
void lcd_clear(void)
{
lcd_write(0x01); // clear display
delay_ms(2);
}
void lcd_write_string(char *str)
{
while(*str != '\0')
{
lcd_write(*str);
str++;
}
}
int main(void)
{
lcd_init();
lcd_write_string("Hello, world!");
while(1);
return 0;
}
在上面的代码中,使用了GPIO口来控制显示屏的RS、enable和数据线。在初始化函数中,配置了这些GPIO口的输入输出模式,并且通过调用lcd_write函数来写入数据到显示屏中。lcd_init函数用于初始化显示屏,lcd_clear函数用于清空显示屏。在主函数中调用了这些函数,并且通过lcd_write_string函数来显示字符串。
阅读全文