• 大小: 3KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: C/C++
  • 标签: TM1629  

资源简介

TM1629系列用c语言写的驱动代码,项目用到,实测可行,有问题可联系3244035342@qq.com

资源截图

代码片段和文件信息

//================文件tm1629.c==============================
//#include 
#include “tm1629b.h“
//#include “delay.h“
#include “string.h“
 
 

#define     TM1629_CS_HIGH  P_1629CS = 1
#define     TM1629_CS_LOW   P_1629CS = 0
 
#define     TM1629_DAT_HIGH P_1629DAT = 1
#define     TM1629_DAT_LOW  P_1629DAT = 0
 
#define     TM1629_CLK_HIGH P_1629CLK = 1
#define     TM1629_CLK_LOW  P_1629CLK = 0
 
//----------------------------
#define     V_NOP       1    //1//3 5

//*****************************************
//函数名称:TM1629Init
//函数功能:初始化stm32 的io口
//入口函数:无
//出口参数:无
//******************************************
void TM1629Init(void)
{      
GPIO_InitTypeDef GPIO_InitStructure;

// RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB ENABLE );
//禁用调试端口,使得PB3,PB4 能用作普通IO口
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable ENABLE);
   
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
//开漏输出当stm32 需要输出5V时候,GPIO口可设置成开漏输出。(@via《STM32F10x常见应用解析.pdf》p48-52)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB &GPIO_InitStructure);

}

//*************************************
// 函数名称:Nop1629
// 函数功能:延时函数
// 入口参数:延时时间
// 出口参数:这里最好不要用到systick时钟延时,因为下面的函数可能会用到在定时器里面
// 如果定时器调用systick 外部也用systick,就会导致外部的systick延时不准确,
// 参考网址  http://www.openedv.com/thread-38193-1-1.html
//--------------------------------
// 延时程序 参考网址 http://www.openedv.com/posts/list/13937.htm
// 所以,72M的stm32 1us 可以执行指令90 条  下面的程序用到的延时最少1us
//***************************************
void Nop1629(u16 T_Dly)
{   
T_Dly*=90;
    while(T_Dly--);    
// delay_us(T_Dly);
 //   return ;
}
//**************************************
// 函数名称:TM1629_WriteByteData
// 函数功能:TM1668发送一字节数据
// 入口参数:要发送的数据
// 出口参数:
//***************************************
void TM1629_WriteByteData(u8 Data)   
{   
    u8 i;  
 
    Nop1629(V_NOP) ;
    for(i=8;i>0;i--)   
    {   
        TM1629_CLK_LOW ;   
        if(Data & 0x01) 
        {
            TM1629_DAT_HIGH ;
        }   
        else 
        {
            TM1629_DAT_LOW ;
        }
        Data >>= 1 ;
        Nop1629(V_NOP) ;
 
        TM1629_CLK_HIGH ;
        Nop1629(V_NOP) ;
    }   
}
//**************************************
// 函数名称:TM1668_WriteCommand
// 函数功能:写设置命令
// 入口参数:设置命令参数
// 出口参数:无
//***************************************
void TM1629_WriteCommand(u8 Comm)
{
    TM1629_CS_LOW ;  
    Nop1629(V_NOP) ;    
    TM1629_WriteByteData(Comm);
  
}
//**************************************
// 函数名称:TM1668_WriteAddrData
// 函数功能:向固定地址写一个数据  
// 入口参数:地址 数据
// 出口参数:无
//***************************************
void TM1629_WriteAddrData(u8 Addru8 Data)
{
    TM1629_CS_LOW ;
Nop1629(V_NOP) ; 
    TM1629_WriteByteData(Addr); //写地址
    TM1629_WriteByteData(Data); //写数据SS

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-02-20 17:47  TM1629B\
     文件        5541  2017-02-20 17:32  TM1629B\tm1629b.c
     文件        3125  2017-02-20 17:47  TM1629B\tm1629b.h

评论

共有 条评论

相关资源