smeraj580
Newbie
C:
#include "stm32f0xx.h"
#include "stm32f0xx_gpio.h"
#include "stm32f0xx_rcc.h"
void LCD_GPIO_Init(void);
void LCD_Init(void);
void LCD_SendCommand(uint8_t);
void Delay(uint32_t);
void LCD_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3| GPIO_Pin_4
| GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
void LCD_Init(void)
{
Delay(20000);
LCD_SendCommand(0x38);
LCD_SendCommand(0x0C);
LCD_SendCommand(0x01);
LCD_SendCommand(0x06);
}
void LCD_SendCommand(uint8_t command)
{
GPIO_ResetBits(GPIOA, GPIO_Pin_6);
GPIO_ResetBits(GPIOA, GPIO_Pin_7);
GPIO_Write(GPIOB,command);
GPIO_SetBits(GPIOA, GPIO_Pin_8);
Delay(50);
GPIO_ResetBits(GPIOA, GPIO_Pin_8);
Delay(2000);
}
void LCD_SendData(uint8_t data)
{
GPIO_SetBits(GPIOA, GPIO_Pin_6);
GPIO_ResetBits(GPIOA, GPIO_Pin_7);
GPIO_Write(GPIOA,data);
GPIO_SetBits(GPIOA, GPIO_Pin_8);
Delay(50);
GPIO_ResetBits(GPIOA, GPIO_Pin_8);
Delay(200);
}
void LCD_DisplayString(const char* str)
{
while (*str)
{
LCD_SendData(*str++);
}
}
void Delay(uint32_t nCount)
{
while (nCount--){
}
}
int main(void) {
LCD_GPIO_Init();
LCD_Init();
LCD_DisplayString("Hello, STM32!");
while (1) ;
}