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

#模块驱动例程#1.战舰以及战舰MINI板驱动TM1637数码模块

[复制链接]
秋水之下 发布时间:2015-11-27 10:28
本帖为密码帖 ,请输入密码 
收藏 2 评论25 发布时间:2015-11-27 10:28

举报

25个回答
秋水之下 回答时间:2015-11-27 10:41:06
/******************************Copyright (c)***********************************
*                Jiangsu Zhihai Electronic Technology Co., Ltd.
*                      Research & Development Department
*
*                                                                                                        www.smarthealth-tech.com
*
-------------------------------------------------------------------------------
* @file    TM1637.h
* @author  GU DONGDONG
* @date    2015-11-25  
*******************************************************************************/
#include "TM1637.h"
#include "delay.h"
/** Write multiple bits in an 8-bit device register.
* @param slaveAddr I2C slave device address
* @param regAddr Register regAddr to write to
* @param bitStart First bit position to write (0-7)
* @param length Number of bits to write (not more than 8)
* @param data Right-aligned value to write
*/
void TM1637_Delay_us(unsigned  int Nus)
{
for(;Nus>0;Nus--)
        {
          __nop();
                 __nop();
                __nop();
                __nop();
                __nop();
                __nop();
                __nop();
                __nop();
                __nop();
                __nop();
                __nop();
        }
}
//#define TM1637_CLK_Low()    GPIO_ResetBits(GPIOC,GPIO_Pin_2)   
//#define TM1637_CLK_High()   GPIO_SetBits(GPIOC,GPIO_Pin_2)
//#define TM1637_DIO_Low()    GPIO_ResetBits(GPIOC,GPIO_Pin_3)   
//#define TM1637_DIO_High()   GPIO_SetBits(GPIOC,GPIO_Pin_3)
void TM1637_Start(void)
{
        TM1637_DIO_OUT();
  TM1637_CLK = 1;
        TM1637_DIO = 1;
        delay_us(2);
        TM1637_DIO = 0;
}
void TM1637_Ack(void)
{
        TM1637_DIO_IN();
  TM1637_CLK = 0;
        TM1637_Delay_us(5);
        while(TM1637_READ_DIO);
        TM1637_CLK = 1;
        delay_us(2);
        TM1637_CLK = 0;
}
void TM1637_Stop(void)
{
        TM1637_DIO_OUT();
        TM1637_CLK = 0;
        delay_us(2);
        TM1637_DIO = 0;
        delay_us(2);
        TM1637_CLK = 1;
        delay_us(2);
        TM1637_DIO = 1;
}
void TM1637_WriteByte(unsigned char oneByte)
{
unsigned char i;
        TM1637_DIO_OUT();
        for(i=0;i<8;i++)
        {
         TM1637_CLK = 0;
                if(oneByte&0x01)
                {
                        TM1637_DIO = 1;
                }
                else
                {
                        TM1637_DIO = 0;
                }
                delay_us(3);
                oneByte=oneByte>>1;
                TM1637_CLK = 1;
                delay_us(3);
        }
}

unsigned char TM1637_ScanKey(void)
{
        unsigned char reKey,i;
        TM1637_Start();
        TM1637_WriteByte(0x42);
        TM1637_Ack();
        TM1637_DIO = 1;
        TM1637_DIO_IN();
        for(i=0;i<8;i++)
        {
          TM1637_CLK = 0;
                reKey=reKey>>1;
                delay_us(30);
                TM1637_CLK = 1;
                if(TM1637_READ_DIO)
                {
                  reKey=reKey|0x80;
                }
                else
                {
                  reKey=reKey|0x00;
                }
                delay_us(30);
        }
  TM1637_Ack();
        TM1637_Stop();
        return(reKey);
}
void TM1637_NixieTubeDisplay(void)
{
        unsigned char i;
        TM1637_Start();
        TM1637_WriteByte(0x40);
        TM1637_Ack();
        TM1637_Stop();
        TM1637_Start();
        TM1637_WriteByte(0xC0);
        TM1637_Ack();
               
        for(i=0;i<6;i++)
        {
                TM1637_WriteByte(0xff);
                TM1637_Ack();
        }
        TM1637_Stop();
        TM1637_Start();
        TM1637_WriteByte(0x8f);
        TM1637_Ack();
        TM1637_Stop();
}

void TM1637_Init(void)
{

GPIO_InitTypeDef  GPIO_InitStructure;
       
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);         
       
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3;                                  
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                   
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         
GPIO_Init(GPIOC, &GPIO_InitStructure);                                          

}

/******************************Copyright (c)***********************************
*                Jiangsu Zhihai Electronic Technology Co., Ltd.
*                      Research & Development Department
*
*                                                                                                        www.smarthealth-tech.com
*
-------------------------------------------------------------------------------
* @file    TM1637.h
* @author  GU DONGDONG
* @date    2015-11-25  
*******************************************************************************/
#ifndef TM1637_H
#define TM1637_H

#include "sys.h"

#define TM1637_CLK           PCout(2)  
#define TM1637_DIO           PCout(3)  
#define TM1637_READ_DIO      PCin(3)

//IO方向设置
#define TM1637_DIO_IN()     {GPIOC->CRL&=0XFFFF0FFF;GPIOC->CRL|=8<<12;}
#define TM1637_DIO_OUT()    {GPIOC->CRL&=0XFFFF0FFF;GPIOC->CRL|=3<<12;}


void TM1637_Delay_us(unsigned  int Nus);
void TM1637_Start(void);
void TM1637_Ack(void);
void TM1637_Stop(void);
void TM1637_WriteByte(unsigned char oneByte);
unsigned char TM1637_ScanKey(void);
void TM1637_NixieTubeDisplay(void);

void TM1637_Init(void);
void TM1637LED_Init(void);

#endif



秋水之下 回答时间:2015-11-30 10:45:59
ts2000 发表于 2015-11-28 09:14
什么东西,还要搞个密码

板子是山寨某原子的,不敢贴出图片和视频。我板子是绿油的,原版是蓝油的一眼看出山寨气息啊,(*^__^*) ……

和战舰MINI和新战舰V3上面通用的IO具体看程序里面定义。

。。。。。

就一个视频和图片,不看也罢
秋水之下 回答时间:2015-11-30 10:45:26

板子是山寨某原子的,不敢贴出图片和视频。我板子是绿油的,原版是蓝油的一眼看出山寨气息啊,(*^__^*) ……

和战舰MINI和新战舰V3上面通用的IO具体看程序里面定义。
秋水之下 回答时间:2015-11-27 10:34:03
一些附件分享 000.jpg 6666.jpg
4位0.36寸共阳数码管(带时钟点、不带小数点)引脚图-请忽略图中尺寸.jpg.jpg

TM系列集成电路产品手册(第二版).pdf

下载

4.75 MB, 下载次数: 108

数码管驱动芯片规格书-TM1637_V2[1].1.pdf

下载

411.9 KB, 下载次数: 105

4-Digit Display v0.9b原理图.pdf

下载

76.31 KB, 下载次数: 95

秋水之下 回答时间:2015-11-27 10:37:51
例程两个一个基于正点原子新战舰,一个基于战舰MINI。

新战舰拓展实验1_TM1637_数码管控制.rar

下载

2.14 MB, 下载次数: 617

ALIENTEK MINISTM32 _TEST1_ TM1637.rar

下载

2 MB, 下载次数: 377

秋水之下 回答时间:2015-11-27 10:45:48
模块图。。。

1

1

11

11
奋斗逼 回答时间:2015-11-27 10:47:39
感谢分享
秋水之下 回答时间:2015-11-27 10:51:38

以后陆续把出了正点原配以外的一些模块驱动列出来
射阳河 回答时间:2015-11-27 11:06:27
:l谢谢分享正需要
埃斯提爱慕 回答时间:2015-11-27 18:38:48
提示: 作者被禁止或删除 内容自动屏蔽
风子 回答时间:2015-11-27 21:35:48
密码是什么鬼
mark0668 回答时间:2015-11-28 00:08:06
哪里来的密码...
小小超 回答时间:2015-11-28 09:14:30
什么东西,还要搞个密码
alles_ok>>0_0<< 回答时间:2015-11-29 14:37:11
密码是什么?
秋水之下 回答时间:2015-11-30 10:44:30

板子是山寨某原子的,不敢贴出图片和视频。我板子是绿油的,原版是蓝油的一眼看出山寨气息啊,(*^__^*) ……
12下一页

所属标签

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