STM32-TM1640-点数码管计数

数码管功能

说明:在哔哩哔哩跟随UP主铁头山羊学习,所有代码均来自铁头山羊B站课堂或者根据铁头山羊代码修改。

利用TM1640芯片,串行通信方式,STM3两个GPIO进行通信。

功能说明

1、 两个GPIO进行通信,GPIOA_PIN–DIN;GPIOA_PIN1—CLK。
2、 通信方式主要是串行通信方式,通信方式软件编写:
 读懂时序图,包括起始位、数据位、结束位。
 在输入数据时当CLK是高电平时,DIN上的信号必须保持不变;只有CLK上的时钟信号为低电平时,DIN上的信号才能改变。数据的输入总是低位在前,高位在后传输。
 数据输入的开始条件是CLK为高电平时,DIN由高变低。
 结束条件是CLK为高时,DIN由低电平变为高电平。
 波形时长根据时序特性来延时,本次编程使用1us。
在这里插入图片描述
在这里插入图片描述

3、 显示数据包括三个命令,其中command2中的data最多有16个,即可以同时显示16个数码管,如图
在这里插入图片描述

4、 command1:主要设置数据命令,本次设置为地址自动加1模式。
在这里插入图片描述

5、 command2:主要设置地址,以及导入显示数据。
在这里插入图片描述

6、 command3:主要设置显示亮度。
在这里插入图片描述

7、 数码管原理图连接。
在这里插入图片描述

数码管初始化函数

TM1640通信电平位5V,单片机IO电平为3.3V,所以需要外接上拉到5V,采用开漏模式。


//TM1640初始化
void TM1640_Init()
{
   
	//GPIOA_PIN_0--Data; GPIOA_PIN_1--Clk   开漏模式
	GPIO_InitTypeDef gpioinit;
	gpioinit.Pin = GPIO_PIN_0 | GPIO_PIN_1;
	gpioinit.Mode = GPIO_MODE_OUTPUT_OD;
	gpioinit.Speed = GPIO_SPEED_FREQ_HIGH;

	__HAL_RCC_GPIOA_CLK_ENABLE();
	HAL_GPIO_Init(GPIOA,&gpioinit);
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_SET);
}

延时函数

精确到1us。


//延时函数,最小1us
void Delayus(uint32_t us)
{
   
	uint32_t n = SystemCoreClock / 1000000 / 8 * us;

		do
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
stm32--tsl256.zip_stm32是一个压缩文件,其中包含了与stm32和tsl256芯片相关的文件和代码。stm32是一种32位的单片机系列,由STMicroelectronics公司推出。它具有高性能、低功耗和丰富的外设接口,适用于各种嵌入式系统应用。tsl256是一种环境光传感器芯片,用于检测周围环境的光照强度。 这个压缩文件可以包含stm32芯片和tsl256传感器之间的通信协议、引脚连接方式、初始化代码以及一些示例应用程序。通过使用这些文件和代码,开发人员可以很方便地在stm32上使用tsl256传感器来测量光照强度。例如,可以通过读取tsl256传感器输出的模拟电压值,转换为相应的光照强度数值。开发人员可以根据需要进行修改和定制,以适应具体的应用场景。 使用stm32--tsl256.zip_stm32文件,开发人员可以节省大量的开发时间和精力。他们无需从零开始编写通信协议和初始化代码,也无需从头研究如何与tsl256传感器进行交互。相反,他们可以直接使用这些提供的文件和代码,快速实现与tsl256传感器的集成,并进行光照强度的测量和应用开发。 总之,stm32--tsl256.zip_stm32是一个方便开发人员在stm32上使用tsl256传感器的压缩文件。它包含了相关的文件和代码,可以用于通信协议、引脚连接、初始化以及示例应用程序。通过使用这些文件和代码,开发人员可以快速、方便地实现在stm32上使用tsl256传感器进行光照强度测量和应用开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值