你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32驱动TM1723段码屏

[复制链接]
TLLED 发布时间:2018-7-4 14:25
    拆了一个雷达小显示盒,里面使用的TM1723芯片驱动段码屏,拿来练练手,使用STM32F103RTB6驱动。



//TM1723.C
#include "config.h"

const u8 dispdat[]={0xd7,0x06,0xe3,0xa7,0x36,0xb5,0xf5,0x07,0xf7,0xb7};

//TM1723初始化
void Init_TM1723(void)
{
        GPIO_InitTypeDef  GPIO_InitStructure;
       
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);                  
       
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                                   
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                                  
  GPIO_Init(GPIOA, &GPIO_InitStructure);                                                                          
  GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);                                                           
}


//延时
void TM1723_Delayus(u32 ys)
{
        u8 i;
        u32 j;
        for(j=0;j<ys;j++)
        {               
                for(i=0;i<5;i++);                //´óÔ¼1us
        }
}

//TM1723写字节
void TM1723_WriteByte(u8 dat)
{
        u8 i;
       
        for(i=0;i<8;i++)
        {
                TM1723_CLK=0;
                if( (dat&0x01)==0x01 )
                {
                        TM1723_DIO=1;
                }
                else
                {
                        TM1723_DIO=0;
                }
                dat=dat>>1;

                TM1723_CLK=1;
               
                TM1723_Delayus(2);        //2us
        }
}

//tm1723写命令
void TM1723_WriteCmd(u8 cmd)
{
        TM1723_CLK=1;
        TM1723_STB=0;
       
        TM1723_WriteByte(cmd);
        TM1723_STB=1;
       
        TM1723_Delayus(100);                //100us
}

//tm1723写数据
void TM1723_WriteDat(u8 addr, u8 dat)
{
        TM1723_CLK=1;
        TM1723_STB=0;
        TM1723_WriteByte(addr);
        TM1723_Delayus(50);                               
        TM1723_WriteByte(dat);
        TM1723_STB=1;
        TM1723_Delayus(100);                //100us
}

//测试
void tt(u8 i)
{
        TM1723_WriteCmd(0x00);
        TM1723_WriteCmd(0x44);
        TM1723_WriteDat(0xc0, 0x00);                 
        TM1723_WriteDat(0xc1, 0x00);                 
        TM1723_WriteDat(0xc2, dispdat[(i%100)%10]);                 
        TM1723_WriteDat(0xc3, dispdat[(i%100)/10]);                 
        TM1723_WriteDat(0xc4, dispdat[i/100]);                                 
        TM1723_WriteDat(0xc5, 0xff);
        TM1723_WriteDat(0xc6, 0x00);                 
        TM1723_WriteDat(0xc7, 0x00);           
        TM1723_WriteDat(0xc8, 0x00);           
        TM1723_WriteDat(0xc9, 0xff);           
        TM1723_WriteDat(0xca, 0xff);               
        TM1723_WriteDat(0xcb, 0xff);               
        TM1723_WriteDat(0xcc, 0xff);
        TM1723_WriteDat(0xcd, 0x00);                 
        TM1723_WriteDat(0xce, 0xff);
        TM1723_WriteDat(0xcf, 0xff);
       
        TM1723_WriteCmd(0x97);
}

//TM1723.H
#ifndef __TM1723_H_
#define __TM1723_H_

#define TM1723_DIO         PAout(1)        // PA1
#define TM1723_CLK          PAout(2)        // PA2
#define TM1723_STB         PAout(3)        // PA3

extern void Init_TM1723(void);                       
extern void tt(u8 i);

#endif


最后显示的图片
7041.jpg


TM1723 _V1.2.pdf

下载

952.25 KB, 下载次数: 34

TM1723.rar

下载

1.08 KB, 下载次数: 55

收藏 1 评论7 发布时间:2018-7-4 14:25

举报

7个回答
wudianjun2001 回答时间:2018-7-4 14:46:21
右上角一个数字有鬼影
wudianjun2001 回答时间:2018-7-4 14:47:03
是2和3之间数字变化的太快了的吧
TLLED 回答时间:2018-7-4 15:14:39
wudianjun2001 发表于 2018-7-4 14:47
是2和3之间数字变化的太快了的吧

测试的时候,最后一位间隔时间有点短
zero99 回答时间:2018-7-16 17:14:19
学习下,支持原创
inowfordream 回答时间:2018-10-5 13:22:36
谢谢分享,学习一下
zhanhualei 回答时间:2021-2-6 07:26:23
大佬,tm1723管角怎么控制
BDH_LYJ 回答时间:2023-5-6 16:48:10

感谢大佬分享

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版