打印
[应用相关]

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

[复制链接]
359|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
显示的有背光吗

使用特权

评论回复
5
paotangsan| | 2021-5-8 15:36 | 只看该作者
没有驱动过这个芯片啊

使用特权

评论回复
6
renzheshengui| | 2021-5-8 15:38 | 只看该作者
能识别汉字吗

使用特权

评论回复
7
wakayi| | 2021-5-8 15:39 | 只看该作者
看不太懂这段代码

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1414

主题

3814

帖子

5

粉丝