OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5367|回复: 9

STM32如何驱动TM1642数码管

[复制链接]

48

主题

179

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2017-6-19
在线时间
90 小时
发表于 2021-2-18 20:56:45 | 显示全部楼层 |阅读模式
10金钱
如题,手上有一块TM1642的板子,通过附带的代码无法驱动成功。
微信截图_20210218205104.png

我用的是战舰的开发板进行连接,硬件连接如下
VCC5---5V
GND----GND
TM1642 2脚DIN---PB14
TM1642 3脚CLK---PB13
TM1642 4脚STB---PB15
PS:通过调整PB14和PB15的顺序依旧不能解决问题。
微信图片_20210218205311.png
附件为代码,求解~

ALIENTEK MINISTM32 驱动TM1642显示板.rar

339.94 KB, 下载次数: 14

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

48

主题

179

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2017-6-19
在线时间
90 小时
 楼主| 发表于 2021-2-19 10:26:00 | 显示全部楼层


求教如下两个函数是什么作用,感觉这两个函数存在问题
  1. void TM1642_NixieTubeDisplayChar(void)
  2. {       
  3.         u8 temp=BIT7_SEG10;
  4.         TM1642_WriteByte(&temp,1);
  5.         temp=DAT_WR|ADD_INC;
  6.         TM1642_WriteByte(&temp,1);
  7.         temp=ADD_SET;
  8.         TM1642_WriteByte(&temp,1);
  9.        
  10.         TM1642_WriteByte(wrBuffer,8);
  11.   temp=CUR_14_16|DIS_ON;
  12.        
  13.   TM1642_WriteByte(&temp,1);//开显示以及辉度调整       
  14. }
复制代码
  1. void TM1642_WriteByte(u8 *D,u8 len)
  2. {
  3.         u8 i,j,temp;
  4.         TM1642_CS()=0;
  5.         delay_us(2);
  6.         for(i=0;i<len;i++){
  7.                 temp=*(D+i);
  8.                 for(j=0;j<8;j++){
  9.                         TM1642_CLK()=0;
  10.                         TM1642_DIN()=temp&1;
  11.                         temp>>=1;
  12.                         TM1642_CLK()=1;
  13.                         delay_us(1);
  14.                 }
  15.         }
  16.   TM1642_CS()=1;
  17. }
复制代码


回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2021-2-18 21:21:00 | 显示全部楼层
这个不难吧,看着规格书进行即可,这货的SPI时序和普通的不一样,需要注意,先用低频率调通后再提升,我目前上到500K,正常跑着
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13117
金钱
13117
注册时间
2012-11-26
在线时间
3813 小时
发表于 2021-2-18 23:33:54 | 显示全部楼层
这个驱动芯片系列的参考代码很多啊,网上随便找个参考下,基本都能用起来
回复

使用道具 举报

48

主题

179

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2017-6-19
在线时间
90 小时
 楼主| 发表于 2021-2-19 08:47:04 | 显示全部楼层
jermy_z 发表于 2021-2-18 23:33
这个驱动芯片系列的参考代码很多啊,网上随便找个参考下,基本都能用起来

附件的代码调了半天led都不亮,不知道是哪的问题。硬件上线路都是通的,测试数码管也是没问题的。
回复

使用道具 举报

48

主题

179

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2017-6-19
在线时间
90 小时
 楼主| 发表于 2021-2-19 10:28:11 | 显示全部楼层
八度空间 发表于 2021-2-18 21:21
这个不难吧,看着规格书进行即可,这货的SPI时序和普通的不一样,需要注意,先用低频率调通后再提升,我目 ...

现在不知道什么原因没有点亮,估计还是代码存在问题,个人理解还是不够
回复

使用道具 举报

48

主题

179

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2017-6-19
在线时间
90 小时
 楼主| 发表于 2021-2-19 10:29:41 | 显示全部楼层
jermy_z 发表于 2021-2-18 23:33
这个驱动芯片系列的参考代码很多啊,网上随便找个参考下,基本都能用起来

天微的TM系列芯片太多了,网上种类也千差万别。通讯接口也有2.3.4线的,个人能力有限,还是没能让它跑起来
回复

使用道具 举报

5

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2019-9-16
在线时间
67 小时
发表于 2021-2-19 10:41:39 | 显示全部楼层
王大爷爱吃鱼 发表于 2021-2-19 10:28
现在不知道什么原因没有点亮,估计还是代码存在问题,个人理解还是不够

有示波器最好点下波形看看,抓下时序

另外检查一下你配置的通信口是不是有其他功能干扰了,我之前用过1628这个把DIN配到ADC_ETR引脚上去了,使能ADC后该引脚被强制拉低导致通信异常。

反正问题就那些,如果板子没问题,那么就是代码问题。代码的话自己对照数据手册写个最简单的程序即可,学会看寄存器是一个嵌入式工程师的基础 加油
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2021-2-19 21:12:02 | 显示全部楼层
王大爷爱吃鱼 发表于 2021-2-19 10:28
现在不知道什么原因没有点亮,估计还是代码存在问题,个人理解还是不够

spi_config.sck_pin   = TM162x_PIN_SPI_CLK;
spi_config.mosi_pin  = TM162x_PIN_SPI_MOSI;
spi_config.frequency = NRF_DRV_SPI_FREQ_500K;
spi_config.bit_order = NRF_DRV_SPI_BIT_ORDER_LSB_FIRST;
spi_config.mode      = NRF_DRV_SPI_MODE_3;

这是我驱动TM1620B的SPI配置,参考下
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

48

主题

179

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2017-6-19
在线时间
90 小时
 楼主| 发表于 2021-2-20 08:52:40 | 显示全部楼层
八度空间 发表于 2021-2-19 21:12
spi_config.sck_pin   = TM162x_PIN_SPI_CLK;
spi_config.mosi_pin  = TM162x_PIN_SPI_MOSI;
spi_confi ...


1642.png 1620B.png
上图为TM1642和TM1620B的时序图,是一样的,下面代码我用的3个IO口做通讯,没用硬件SPI。能不能帮我看看是哪里配置错了吗。

  1. #define TM1642_DIN()           PBout(13)  
  2. #define TM1642_CLK()           PBout(14)  
  3. #define TM1642_CS()            PBout(15)
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 10:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表