资源简介
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
- 上一篇:A*算法解决八数码问题C++
- 下一篇:基于顺序表的学生信息管理系统.cpp
评论
共有 条评论