小渣渣的学习笔记之串口传送数据显示

这一点小代码写了好久,到最后看到都想吐了。在办公室大佬的帮助下终于搞定了,过程这么艰难,当然也收获了许多。

1、用的是tm1652led驱动芯片。按照一位停止码+八位数据码+奇偶校验码+停止码的顺序发,本来用的是for循环,后面被大佬教育(用for循环的坏处是,会一直占用程序,中间需要传输时间,需要一直等待。占用程序时间,所以要避免使用for循环。)这种中间可能需要延时的,最好还是用状态机写。果然用状态机写,清晰多了。

2、定时器计时。写这个定时器的时候让我深刻理解到了写单片机的本质,就是通过往寄存器里面写值来设定自己想要的模式。后面的库函数啊什么的,其实就是把对寄存器里写的值封装起来,更易于对不太了解这款芯片的人,不用细读数据手册,可以很快的通过改值,置1置0来实现自己想要的功能。(但因为初上手是stm32的我来说,当时直接接触库函数,完全没有理解到本质--也是自己没有好好学QAQ)

需要注意的点就是(1)不能漏了配置(2)一般要通过标志位来判断是否进入中断,不同的芯片不一样。像这次写的比亚迪是自己溢满了会直接进入中断,自己清零。所以我这里就不用读取计时器标志位的数据了。(3)中断函数名称是固定的,一定要引用对应向量号(!!!尽量不要更改启动文件下的命名)我这次就是傻傻的自己写了个函数名,把函数直接在main的while(1)里面循环结果用示波器看的波形时间总是不准。

3、搞清楚了指令周期和定时器周期的关系。
eg定时器分频1:8分频,指令周期1us,即是一个定时器记一次数,要8us

4、初始化之后一般延时500ms,让定时器稳定。最后放一个main的框架留作纪念吧。

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值