TM1640学习手册及示例代码

数据手册 

TM1640数据手册

数据手册解读

这里我们看管脚定义DIN和SCLK,一个数据线一个时钟线

SEG1~SEG8为段码,GRID1~GRID16为位码(共阴极情况下)

这里VDD给5V

 数据指令

数据命令设置

地址命令设置

显示控制命令

共阴极硬件连接图

这里我们只介绍共阴极,共阳极需要在代码里调整,有兴趣可以私聊我

注意事项

TM1640驱动源码(非阻塞)

tm1640.c
//******************************************************************************
/**
 * @Name       : TM1640_Start
 * @Date       : 2025年4月21日
 * @Description: TM1640起始
 * @Parameters : None
 * @Return     : None
 */  
void TM1640_Start(void)
{
  TM_SDA_H();
  TM_SCL_H();
  __NOP();__NOP();
  TM_SDA_H();
  __NOP();__NOP();
  TM_SDA_L();
  __NOP();__NOP();
  __NOP();__NOP();
  TM_SCL_L();
  __NOP();__NOP();
}

//******************************************************************************
/**
 * @Name       : TM1640_Stop
 * @Date       : 2025年4月21日
 * @Description: TM1640结束
 * @Parameters : None
 * @Return     : None
 */  
void TM1640_Stop(void)
{
  TM_SCL_H();
	__NOP();__NOP();
	TM_SDA_L();
	__NOP();__NOP();
	TM_SDA_H();
	__NOP();__NOP();
	TM_SCL_L();
	TM_SDA_L();
}

//******************************************************************************
/**
 * @Name       : TM1640_WriteData
 * @Date       : 2025年4月21日
 * @Description: 写入一字节的数据
 * @Parameters : oneByte:需要发送的数据字节
 * @Return     : None
 */  
void TM1640_WriteData(uint8_t oneByte)
{
  uint8_t index;
  for(index=0;index<8;index++)
  {
    TM_SCL_L();
    if(oneByte&0x01) 
      TM_SDA_H();
    else
      TM_SDA_L();
    __NOP();__NOP();__NOP();
    TM_SCL_H();
    oneByte=oneByte>>1;
  }
  TM_SCL_L();
  __NOP();__NOP();
  __NOP();__NOP();
  TM_SDA_L();
  __NOP();__NOP();
}

//******************************************************************************
/**
 * @Name       : TM1640_Handle
 * @Date       : 2025年4月21日
 * @Description: 启动、写数据和控制显示
 * @Parameters : None
 * @Return     : None
 */  
void TM1640_Handle(void)
{
  uint8_t index;

  TM1640_Start();
  TM1640_WriteData(CMD_DATA_1);//地址自动加1,普通模式
  TM1640_Stop();
  
  TM1640_Start();
  TM1640_WriteData(START_ADDRESS_1);
  
  for(index=0;index<smg_num;index++)
  {
    TM1640_WriteData(smg[index]);
  }
  TM1640_Stop();

  TM1640_Start();
  TM1640_WriteData(BRIGHTNESS_LEVEL_4);
  TM1640_Stop();
  __NOP();

}

这里smg[index]需要你自己去定义,然后将数组传入tm1640中就可以 

tm1640.h
/*数码管数量*/
#define smg_num    16(最大16位)
/*显示控制命令,设置亮度打开显示屏,共8级亮度,也就是设置不同的脉冲宽度*/
#define BRIGHTNESS_LEVEL_1  0x88
#define BRIGHTNESS_LEVEL_2  0x89
#define BRIGHTNESS_LEVEL_3  0x8a
#define BRIGHTNESS_LEVEL_4  0x8b
#define BRIGHTNESS_LEVEL_5  0x8c
#define BRIGHTNESS_LEVEL_6  0x8d
#define BRIGHTNESS_LEVEL_7  0x8e
#define BRIGHTNESS_LEVEL_8  0x8f
#define CLOSE_DISPLAY       0x80

/*数据设置命令*/
#define CMD_DATA_1          0X40 //地址自动加1,普通模式       0100 0000
#define CMD_DATA_2          0X44 //地址固定,普通模式          0100 0100
#define CMD_DATA_3          0X48 //地址自动加1,内部测试模式   0100 1000
#define CMD_DATA_4          0X4C //地址固定,内部测试模式      0100 1100

/*地址命令设置 显存地址为0xC0-0xCF*/
#define START_ADDRESS_1       0XC0 //第一个数码管
#define START_ADDRESS_2       0XC1 
#define START_ADDRESS_3       0XC2 
#define START_ADDRESS_4       0XC3 
#define START_ADDRESS_5       0XC4 
#define START_ADDRESS_6       0XC5 
#define START_ADDRESS_7       0XC6 
#define START_ADDRESS_8       0XC7 
#define START_ADDRESS_9       0XC8 
#define START_ADDRESS_10      0XC9 
#define START_ADDRESS_11      0XCa 
#define START_ADDRESS_12      0XCb 
#define START_ADDRESS_13      0XCc 
#define START_ADDRESS_14      0XCd 
#define START_ADDRESS_15      0XCe 
#define START_ADDRESS_16      0XCf

#define TM_SCL_H()  GPIOB->BSRR = GPIO_PIN_6
#define TM_SCL_L()  GPIOB->BRR = GPIO_PIN_6

#define TM_SDA_H()  GPIOB->BSRR = GPIO_PIN_7
#define TM_SDA_L()  GPIOB->BRR = GPIO_PIN_7

 

 

数据集介绍:多类道路车辆目标检测数据集 一、基础信息 数据集名称:多类道路车辆目标检测数据集 图片数量: - 训练集:7,325张图片 - 验证集:355张图片 - 测试集:184张图片 总计:7,864张道路场景图片 分类类别: - Bus(公交车):城市道路与高速场景中的大型公共交通工具 - Cars(小型汽车):涵盖轿车、SUV等常见乘用车型 - Motorbike(摩托车):两轮机动车辆,含不同骑行姿态样本 - Truck(卡车):包含中型货运车辆与重型运输卡车 标注格式: YOLO格式标注,包含归一化坐标的边界框与类别标签,适配主流目标检测框架。 数据特性: 覆盖多种光照条件与道路场景,包含车辆密集分布与复杂背景样本。 二、适用场景 自动驾驶感知系统开发: 用于训练车辆识别模块,提升自动驾驶系统对道路参与者的实时检测与分类能力。 交通流量监控分析: 支持构建智能交通管理系统,实现道路车辆类型统计与密度分析。 智慧城市应用: 集成至城市级交通管理平台,优化信号灯控制与道路资源分配。 学术研究领域: 为计算机视觉算法研究提供标准化评测基准,支持多目标检测模型优化。 三、数据集优势 高场景覆盖率: 包含城市道路、高速公路等多种驾驶环境,覆盖车辆静止、行驶、遮挡等现实场景。 精细化标注体系: 采用YOLO标准格式标注,每张图片均经过双重质检,确保边界框与类别标签的精准对应。 类别平衡设计: 四类车辆样本量经科学配比,避免模型训练时的类别偏向问题。 工程适配性强: 可直接应用于YOLO系列模型训练,支持快速迁移至车载计算平台部署。 现实应用价值: 专注自动驾驶核心检测需求,为车辆感知模块开发提供高质量数据支撑。
内容概要:本文介绍了DeepSeek与Mermaid结合实现可视化图表自动化生成的技术及其应用场景。DeepSeek是一款由杭州深度求索人工智能基础技术研究有限公司开发的大语言模型,具有强大的自然语言处理能力,能理解复杂的自然语言指令并生成对应的Mermaid代码。Mermaid是一款基于文本的开源图表绘制工具,能够将简洁的文本描述转化为精美的流程图、序列图、甘特图等。两者结合,通过DeepSeek将自然语言转化为Mermaid代码,再由Mermaid将代码渲染成直观的图表,极大提高了图表制作的效率和准确性。文章详细描述了DeepSeek的发展历程、技术架构及应用场景,Mermaid的基础语法和图表类型,并通过一个电商平台开发项目的实战演练展示了二者结合的具体应用过程。 适合人群:具备一定编程基础和技术理解能力的研发人员、项目经理、数据分析师等。 使用场景及目标:①需求分析阶段,快速生成业务流程图和功能关系图;②设计阶段,生成系统架构图和数据库设计图;③实现阶段,辅助代码编写,提高编码效率;④验证阶段,生成测试用例和测试报告图表,直观展示测试结果。 阅读建议:在学习和使用DeepSeek与Mermaid的过程中,建议读者结合具体项目需求,多实践生成图表和代码,熟悉两者的交互方式和使用技巧,充分利用官方文档和社区资源解决遇到的问题,逐步提高图表绘制和代码编写的准确性和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值