[应用相关] STM32驱动12964串口通信没有显示是为什么?求大神指导一下

[复制链接]
 楼主| jcky001 发表于 2021-4-21 11:27 | 显示全部楼层 |阅读模式

/**************H头文件********************/
#ifndef __12864_H
#define __12864_H
#include "sys.h"
/*#define CS PAout(0)
#define SID PAout(1)
#define SCLK PAout(2)
#define RST PAout(3)
#define PSB PAout(4)*/
#define RS_ON      GPIO_SetBits(GPIOA,GPIO_Pin_0);
#define RS_OFF     GPIO_ResetBits(GPIOA,GPIO_Pin_0);
#define SID_ON      GPIO_SetBits(GPIOA,GPIO_Pin_1);
#define SID_OFF     GPIO_ResetBits(GPIOA,GPIO_Pin_1);
#define E_ON       GPIO_SetBits(GPIOA,GPIO_Pin_2);
#define E_OFF      GPIO_ResetBits(GPIOA,GPIO_Pin_2);
#define RST_ON     GPIO_SetBits(GPIOA,GPIO_Pin_3);
#define RST_OFF    GPIO_ResetBits(GPIOA,GPIO_Pin_3);

//sbit CS=P2^6;       //片选信号  RS
//sbit SID=P2^5;      //数据信号  R/W
//sbit SCLK=P2^7;     //时钟信号   E
//sbit RST=P3^4;      //复位信号  
//sbit PSB = P3^2;     //并行、串行选择信号

void Gpio_Init(void);//GPIO初始化函数

void sendbyte(u8 zdata); //发送数据
void write_com(u8 cmdcode);
void write_data(u8 Dispdata);
void LCD12864_Init(void);//初始化函数
void hzkdis(u8 *s);
void Test(void);//显示内容
#endif


/************************.C文件************************/

#include "12864.h"
#include "delay.h"



void Gpio_Init(void)
{
        GPIO_InitTypeDef GPIO_InitT;
        RCC_APB2PeriphclockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);//使能GPIOA时钟
      
//        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
//        SystemInit();
      
        GPIO_InitT.GPIO_Mode=GPIO_Mode_Out_PP;//通用推挽输出
        GPIO_InitT.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;
        GPIO_InitT.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitT);
        //GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4);
}
void sendbyte(u8 zdata) //发送数据
{  
        u8 i;  
    for(i=0; i<8; i++)  
    {  
        if((zdata << i) & 0x80)  
        {  
            SID_ON;  
        }  
        else   
        {  
            SID_OFF;  
        }  
        E_OFF;  
        E_ON;  
    }  
}
void write_com(u8 cmdcode)  
{  
         RS_ON;  
    sendbyte(0xf8);  
    sendbyte(cmdcode & 0xf0);  
    sendbyte((cmdcode << 4) & 0xf0);  
    delay_ms(10);  
}      
void write_data(u8 Dispdata) //写串口命令
{  
    RS_ON;  
    sendbyte(0xfa);  
    sendbyte(Dispdata & 0xf0);  
    sendbyte((Dispdata << 4) & 0xf0);  
    delay_ms(10);  
}
void LCD12864_Init(void)  
{   
         RST_OFF;  
    delay_ms(100);  
    RST_ON;  
    delay_ms(100);  
    write_com(0x30);  
    delay_ms(50);   
            write_com(0x0c);  
            delay_ms(50);  
}  
void hzkdis(u8 *s)  
{   
        while(*s > 0)  
    {   
                write_data(*s);  
        s++;  
        delay_ms(50);
    }  
}  
void Test(void)  
{   
        write_com(0x03);  
            delay_ms(50);     
    write_com(0x81);  
    hzkdis("语音录放系统");  
    write_com(0x92);  
    hzkdis("abcf");  
    write_com(0x88);  
    hzkdis("▲◆◆▲");  
    write_com(0x98);  
    hzkdis("作者:   ");  
}  


/**************主函数******************/
#include "delay.h"
#include "12864.h"
#include "sys.h"


int main(void)  
{
                LCD12864_Init();
         Gpio_Init();
        delay_init();
      
//        PSB= 0;  //只有在上面定义了以后才能用这句话,不然会报错没有接地时会出现乱码
//   LCD12864_Init();  
    delay_ms(10);  
    while(1)  
        {  
            Test();  
            delay_ms(5);  
        }
}
海滨消消 发表于 2021-4-21 16:59 | 显示全部楼层
你有没有程序啊
keaibukelian 发表于 2021-5-8 15:31 | 显示全部楼层
是通讯问题还是显示的问题呢
labasi 发表于 2021-5-8 15:33 | 显示全部楼层
显示的有背光吗
paotangsan 发表于 2021-5-8 15:36 | 显示全部楼层
没有驱动过这个芯片啊
renzheshengui 发表于 2021-5-8 15:38 | 显示全部楼层
能识别汉字吗
wakayi 发表于 2021-5-8 15:39 | 显示全部楼层
看不太懂这段代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1636

主题

5575

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部