贴出C文件和H文件,用原子的库写的,参考的51的写法,已经折腾2天了,还是显示不了,求大神帮帮忙!
在线等解答。。。。。。拜托了。。。
12864.h
#ifndef __12864_H
#define __12864_H
#include "sys.h"
#define rs PBout(3)
#define rw PBout(4)
#define e PBout(5)
#define psb PBout(6)
#define rest PBout(7)
#define DATAOUT(x) GPIOD->ODR=(GPIOD->ODR&0XFF00)|(x&0x00ff)//数据输出
void display(void);
void GPIOD_Init(void);
void write_com(u8 com) ;
void write_data(u8 date);
void init(void);
#endif
/*************************************************************************************/
12864.c
#include <stm32f10x_lib.h>
#include "usart.h"
#include "12864.h"
#include "delay.h"
#include "sys.h"
u8 table[]={"测试"};
void GPIOD_Init(void)
{
RCC->APB2ENR|=1<<3; //B时钟
RCC->APB2ENR|=1<<5; //D时钟
GPIOD->CRL&=0X00000000;
GPIOD->CRL|=0X33333333;//D0-7推挽输出 数据口
GPIOD->ODR|=0X0000FFFF
GPIOB->CRL&=0X00000FFF;
GPIOB->CRL|=0X33333000;
GPIOB->ODR|=1<<3;
GPIOB->ODR|=1<<4;
GPIOB->ODR|=1<<5;
GPIOB->ODR|=1<<6;
GPIOB->ODR|=1<<7;
}
void write_com(u8 com)
{
rw=0;
rs=0;
e=0;
delay_ms(2);
DATAOUT(com);
delay_ms(2);
e=1;
delay_ms(2);
e=0;
}
void write_data(u8 date)
{
rw=0;
rs=1;
e=0;
DATAOUT(date);
delay_ms(5);
e=1;
delay_ms(5);
e=0;
}
void init()
{
psb=1;
rest=0;
delay_ms(2);
rest=1;
delay_ms(5);
write_com(0x30);
delay_ms(5);
write_com(0x0C);
delay_ms(5);
write_com(0x01);
delay_ms(5);
}
int main(void)
{
u8 i=0;
Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口1初始化
GPIOD_Init();
init();
write_com(0x80) ;
write_data('Z');
while(1);
}
在线等解答~~~~~~~~~~~~~~ |