OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5560|回复: 4

ht16221 断码屏驱动,全显,一点反应都没有,大佬们帮忙看看是什么问题

[复制链接]

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2020-5-19
在线时间
28 小时
发表于 2021-6-29 09:58:29 | 显示全部楼层 |阅读模式
1金钱
#include "lcd.h"
#include "stm32f10x.h"
#include  "delay.h"
//写模式
void write_pattern(unsigned char MODE)
{
  unsigned char i;
  for(i=0;i<=MODE;i++);
GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;
delay_us(10);

GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
delay_us(10);
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;

GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
delay_us(10);
if(MODE==0)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí   //D′&#195;üá&#238;
}
else
{
GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;    //D′êy&#190;Y
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2020-5-19
在线时间
28 小时
 楼主| 发表于 2021-6-29 10:07:23 | 显示全部楼层
#include "lcd.h"
#include "stm32f10x.h"
#include  "delay.h"



//写模式
void write_pattern(unsigned char MODE)
{
  unsigned char i;
  for(i=0;i<=MODE;i++);
GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;
delay_us(10);

GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
delay_us(10);
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;
       
GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
delay_us(10);
if(MODE==0)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí   //D′&#195;üá&#238;
}
else
{
GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;    //D′êy&#190;Y
}       
   delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;       
         delay_us(10);
}

//写命令
void Write_order(unsigned char order_byte)//D′&#195;üá&#238;
{
unsigned char c=0;
for(c=0;c<8;c++)
{
if(order_byte>>(7-c)&0x01)
{
GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;   
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí   
}
delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;       
delay_us(10);

}
GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
delay_us(10);
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí   
delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;       
delay_us(10);
}

// 写地址
void addr(unsigned char address)
{
unsigned char a=0;
  address=address<<2;
for(a=0;a<6;a++)
{
if(address>>(7-a)&0x01)
{
GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;   
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí   
}
delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;       
delay_us(10);
}       
}

//写数据
void Write_data(unsigned char databit)//D′êy&#190;Y
{
   unsigned char b=0;
   databit=databit<<4;
for(b=0;b<6;b++)
{
if(databit>>(7-b)&0x01)
{
GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;   
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí   
}
delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;       
delay_us(10);
}       
}

//void SystemInit()
//{
        //do nothing
//}

void ht1621_init(void)
{
        //GPIO3&#245;ê&#188;&#187;ˉ
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStruct.GPIO_Mode= GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Pin= GPIO_Pin_0| GPIO_Pin_1| GPIO_Pin_2|GPIO_Pin_3;
GPIO_InitStruct.GPIO_Speed=  GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStruct);
GPIO_ResetBits( GPIOB, GPIO_Pin_3);
       
}
//lcd初始化ˉ
void lcd_init(void)
{
         GPIO_SetBits(GPIOB,GPIO_Pin_0);//CSà-&#184;&#223;
   GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;
   GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;
    delay_us(10);
       
   GPIO_ResetBits(GPIOB,GPIO_Pin_0);//csà-μí
    delay_us(10);
       
   write_pattern(0X80);
   Write_order(0X01);//1&#216;±&#213;&#207;μí3ê±&#214;ó
   Write_order(0X03);//′ò&#191;aLCD&#198;&#171;&#214;′·¢éú&#198;÷
   Write_order(0X04);//&#189;&#251;&#214;1Time baseê&#228;3&#246;
   Write_order(0X05);//&#189;&#251;&#214;1WDT&#212;Yí£±ê&#214;&#190;ê&#228;3&#246;
   Write_order(0X08);//1&#216;±&#213;·&#228;&#195;ù&#198;÷
   Write_order(0X18);//&#207;μí3ê±&#214;ó£&#172;&#198;&#172;&#196;úRC&#213;eμ′
   Write_order(0X29);//BIAS 1/3 4COM
   Write_order(0X80);//&#189;&#251;&#214;1IRQê&#228;3&#246;
   Write_order(0X40);//·&#228;&#195;ù&#198;÷&#198;μ&#194;êê&#228;3&#246;4khz
   Write_order(0XE3);//&#198;&#213;í¨&#196;£ê&#189;
         delay_us(10);
         GPIO_SetBits(GPIOB,GPIO_Pin_0);//CSà-&#184;&#223;
}



主函数


#include "stm32f10x.h"
#include "delay.h"
#include "lcd.h"
#include "key.h"
#include "ad.h"
extern void lcd_init(void);
extern void ht1621_init(void);
extern void addr(unsigned char address);
extern void Write_data(unsigned char databit);
extern void write_pattern(unsigned char MODE);
extern void ad_init(void);
unsigned char lcdram[16]={ 0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,0X0A,0X0B,0X0C,0X0D,0X0E};
int main(void)
{       
//u32 adc = 0;
  //u8 ac = 0;
         //unsigned char q;
         ad_init();
         ht1621_init();
         lcd_init();

//key_init();

         delay_us(10);
         GPIO_ResetBits(GPIOB,GPIO_Pin_0);//csà-μí
         GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
         write_pattern(0XA0);
         //for(q=0;q<14;q++)
        // {
                          delay_us(10);
       
            addr( 0x05 );
          
                   delay_us(10);
        // }
  
         Write_data(0xff);
回复

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2020-5-19
在线时间
28 小时
 楼主| 发表于 2021-6-29 10:08:13 | 显示全部楼层
#include "lcd.h"
#include "stm32f10x.h"
#include  "delay.h"



//写模式
void write_pattern(unsigned char MODE)
{
  unsigned char i;
  for(i=0;i<=MODE;i++);
GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;
delay_us(10);

GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
delay_us(10);
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;
       
GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
delay_us(10);
if(MODE==0)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí   //D′&#195;üá&#238;
}
else
{
GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;    //D′êy&#190;Y
}       
   delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;       
         delay_us(10);
}

//写命令
void Write_order(unsigned char order_byte)//D′&#195;üá&#238;
{
unsigned char c=0;
for(c=0;c<8;c++)
{
if(order_byte>>(7-c)&0x01)
{
GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;   
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí   
}
delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;       
delay_us(10);

}
GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
delay_us(10);
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí   
delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;       
delay_us(10);
}

// 写地址
void addr(unsigned char address)
{
unsigned char a=0;
  address=address<<2;
for(a=0;a<6;a++)
{
if(address>>(7-a)&0x01)
{
GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;   
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí   
}
delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;       
delay_us(10);
}       
}

//写数据
void Write_data(unsigned char databit)//D′êy&#190;Y
{
   unsigned char b=0;
   databit=databit<<4;
for(b=0;b<6;b++)
{
if(databit>>(7-b)&0x01)
{
GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;   
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_2);//dataà-μí   
}
delay_us(10);
GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;       
delay_us(10);
}       
}

//void SystemInit()
//{
        //do nothing
//}

void ht1621_init(void)
{
        //GPIO3&#245;ê&#188;&#187;ˉ
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStruct.GPIO_Mode= GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Pin= GPIO_Pin_0| GPIO_Pin_1| GPIO_Pin_2|GPIO_Pin_3;
GPIO_InitStruct.GPIO_Speed=  GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStruct);
GPIO_ResetBits( GPIOB, GPIO_Pin_3);
       
}
//lcd初始化ˉ
void lcd_init(void)
{
         GPIO_SetBits(GPIOB,GPIO_Pin_0);//CSà-&#184;&#223;
   GPIO_SetBits(GPIOB,GPIO_Pin_1);//wrà-&#184;&#223;
   GPIO_SetBits(GPIOB,GPIO_Pin_2);//dataà-&#184;&#223;
    delay_us(10);
       
   GPIO_ResetBits(GPIOB,GPIO_Pin_0);//csà-μí
    delay_us(10);
       
   write_pattern(0X80);
   Write_order(0X01);//1&#216;±&#213;&#207;μí3ê±&#214;ó
   Write_order(0X03);//′ò&#191;aLCD&#198;&#171;&#214;′·¢éú&#198;÷
   Write_order(0X04);//&#189;&#251;&#214;1Time baseê&#228;3&#246;
   Write_order(0X05);//&#189;&#251;&#214;1WDT&#212;Yí£±ê&#214;&#190;ê&#228;3&#246;
   Write_order(0X08);//1&#216;±&#213;·&#228;&#195;ù&#198;÷
   Write_order(0X18);//&#207;μí3ê±&#214;ó£&#172;&#198;&#172;&#196;úRC&#213;eμ′
   Write_order(0X29);//BIAS 1/3 4COM
   Write_order(0X80);//&#189;&#251;&#214;1IRQê&#228;3&#246;
   Write_order(0X40);//·&#228;&#195;ù&#198;÷&#198;μ&#194;êê&#228;3&#246;4khz
   Write_order(0XE3);//&#198;&#213;í¨&#196;£ê&#189;
         delay_us(10);
         GPIO_SetBits(GPIOB,GPIO_Pin_0);//CSà-&#184;&#223;
}



主函数


#include "stm32f10x.h"
#include "delay.h"
#include "lcd.h"
#include "key.h"
#include "ad.h"
extern void lcd_init(void);
extern void ht1621_init(void);
extern void addr(unsigned char address);
extern void Write_data(unsigned char databit);
extern void write_pattern(unsigned char MODE);
extern void ad_init(void);
unsigned char lcdram[16]={ 0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,0X0A,0X0B,0X0C,0X0D,0X0E};
int main(void)
{       
//u32 adc = 0;
  //u8 ac = 0;
         //unsigned char q;
         ad_init();
         ht1621_init();
         lcd_init();

//key_init();

         delay_us(10);
         GPIO_ResetBits(GPIOB,GPIO_Pin_0);//csà-μí
         GPIO_ResetBits(GPIOB,GPIO_Pin_1);//wrà-μí
         write_pattern(0XA0);
         //for(q=0;q<14;q++)
        // {
                          delay_us(10);
       
            addr( 0x05 );
          
                   delay_us(10);
        // }
  
         Write_data(0xff);
回复

使用道具 举报

15

主题

1061

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
3627
金钱
3627
注册时间
2019-8-14
在线时间
1054 小时
发表于 2021-6-29 19:26:39 | 显示全部楼层
帮顶  
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2021-6-30 17:38:30 | 显示全部楼层
这个要对照你的断码表来的。每个厂家不一样的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 07:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表