【嵌入式学习】利用STM32的SPI驱动TM1629A以点亮数码管

从学生时代结束进入职场后,被分配做了嵌入式开发,以前的软件知识能够用到的地方较为局限。领导让我学习的第一块板子就是STM32F1系列,在跟着“正点原子”的教程学习了近一个月后,学习进入瓶颈期,这个阶段并不知道应该再继续看些什么,由于有了例程代码,所以自己的动手能力也比较局限。在同领导讨论后,他让我尝试把几个功能融合在一起玩一些实验。只见他从架子上随手拿了一块小板子,说,来就这个吧,你试试用SP...
摘要由CSDN通过智能技术生成

从学生时代结束进入职场后,被分配做了嵌入式开发,以前的软件知识能够用到的地方较为局限。领导让我学习的第一块板子就是STM32F1系列,在跟着“正点原子”的教程学习了近一个月后,学习进入瓶颈期,这个阶段并不知道应该再继续看些什么,由于有了例程代码,所以自己的动手能力也比较局限。

在同领导讨论后,他让我尝试把几个功能融合在一起玩一些实验。只见他从架子上随手拿了一块小板子,说,来就这个吧,你试试用SPI驱动这块板子,点亮数码管。于是我迎来了我入职后完全自己动手的第二个实验,有点忐忑。

在我尝试几天,并在前辈的悉心指导下,终于点亮了数码管。那一瞬间真的是想哭,感觉数码管上的光是我见过最美的光了=_+,又努力的调代码,终于完全弄懂了驱动过程并正确的点亮了数码管。

话不多说,下面开始总结实验过程。

一、实验环境

1. 硬件环境:STM32F103ZE开发板,TM1629A开发板(上面安置的是米字形数码管)

2. 软件环境:Keil 5

二、实验思路

1. 所谓SPI驱动数码管点亮,大家不要被驱动这个词所吓到。由于TM1629A芯片只能作为从设备,只有数据接收口,没有数据发送口,因此STM32作为主设备,利用SPI通讯,将时钟、数据、片选信息发送给TM1629A,并为之供电,其实就是一种驱动,通过TM1629外部的作用,让其内部运作起来;

2. SPI的配置要精确,它是整个实验的基础,而数码管段位的点亮代码,怎样显示1234ABCD这些,就比较简单了;

3. 学习嵌入式,首先要学会看原理图,了解引脚的作用,引脚同哪些硬件已经相连了,某些模块的某个引脚配置了逻辑电源、逻辑地、上拉电阻等等。

比如“正点原子”的SPI通讯实验,是STM32同板子上自带的FLASH模块W25QXX进行读写通讯,通过原理图可以看到,SPI2的四条线(片选、时钟、输入、输出)已经同这个模块相连,因此教程中直接使用硬件SPI2与之通讯,也不需要再插线,那么你想用硬件SPI1时,在配置完毕SPI1的寄存器,注释掉例程中一开始的SPI2的相关代码后,还需要用杜邦线将SPI1的四个引脚连到对应的SPI2四个引脚上,才可以正常读写FLASH,因为只有SPI2是和FLASH硬件上相连的(图1)。

图1 STM32F1开发板SPI2同FLASH模块相连原理图

之后比较重要的是要学会看芯片的文档,里面会详细介绍每个寄存器的用法与配置方法,引脚的作用,时序等等;

4. 第3点中提到的时序尤为重要,下面用到时会详细说明。

三、代码说明

注:基础配置,如sys.h等文件,请自行查阅“正点原子”相关教程,这里不再赘述。

1. SPI的配置

实验中我们选用STM32的硬件SPI1,根据原理图(图2),可以看到SPI1的片选、时钟、数据输入、数据输出分别对应PA4、PA5、PA6、PA7.

图2 STM32F1的SPI1引脚示意图

 

  图3 TM1629A引脚图

 

图4 TM1629A引脚作用

从图3,图4中可以看出TM1629A只能作为从设备,因此它的DIO数据输入口应该用杜邦线连接到STM32F1的PA7数据输出口,而PA6数据输入则不用。故最后我们只需要PA4,PA5,PA7三个SPI口与TM1629A相连,同时STM32F1的5V供电与GND引脚,分别与TM1629A的10引脚、6引脚相连。

注:TM1629A的数据手册中明确说明,应当使用5V供电。

我这边为了图省事(没找到

  • 12
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值