找回密码
 注册
关于网站域名变更的通知
查看: 639|回复: 1
打印 上一主题 下一主题

纳尼!用Excel可以生成代码?

[复制链接]
  • TA的每日心情
    无聊
    2020-5-6 15:53
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    跳转到指定楼层
    1#
    发表于 2020-7-29 09:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    本帖最后由 lukeluck 于 2020-7-29 09:40 编辑 # @& [0 A" |; I. e% d  a+ R. q) x5 M( \

    % J2 C5 E, q. Z2 M- w
    ▎By the engineer, for the engineer
    关于代码生成,初一看觉得好神奇,让人想起黑客帝国来。
    3 d" n6 `( V5 A6 I2 }
    通过代码生成代码,原来用Excel就可以轻松实现。最近接触了一些嵌入式编程的知识,以STM32 mcu为例,入门的应用就是IO口初始化了。
    6 ^) ^9 ]  {+ ]( X3 r0 r! O下面就来和大家一起用Excel实现STM32 MCU的IO口初始化代码生成。
      ?7 F" `$ |5 f7 t* t
    01 用Excel配置IO口属性
    ' A: P0 b+ m  M9 V" U+ @* L只需要在下面的工具中按每个IO口的属性修改相应的二进制值,这个工具会自动生成十六进制码。
    0 F" }2 y6 k. z9 A" J. e
    自动计算十六进制的原理也非常简单,主要是利用Excel自带的进制转换函数DEC2HEX,以及TEXT 和REPT函数。
    F26 = TEXT(DEC2HEX(SUMPRODUCT(2^G24:AL24*G26:AL26)),"000000000")E26 = "0x"&IF(LEN(F26)<8,REPT("0",8-LEN(F26))&F26,F26)
    F26,E26单元格中设置的公式分别是实现将二进制数转化为十六进制,同时设置整齐的8位格式。
    将某个Port配置完成后点击工具中的代码生成就会自动生成这个Port口的初始化代码:
    * |6 e# l' G* i: X, [2 x- N1 C, k1 U
    所有的Port口配置完成之后点击复制代码,然后在IDE窗口中粘贴就ok了。
    ) t# G) d) @( K& s8 L
    可以看出这样生成的代码不仅非常整齐美观,而且连二进制注释也自动帮助大家写好了,非常方便。
    ( e1 ^$ ], Q# j! Q) i% ?: ^

    3 N$ r* D* W( [4 t: A( l: |+ Y02 动图演示
    * e8 j! d. k/ u  y' r5 `* z9 ?7 m% z- j  D/ j' ?
    1 {) x4 D. X, ?2 f8 ~
    完整的配置过程动图演示如下:
    " C* D# n0 M+ U5 V! ?1 O# ]
    : v- v$ Z) v% C7 g( a9 W0 v! s; B
    STM32配置IO口的过程由原来的拿程序员计算器反复在二进制和十六进制之间来回转换变成了通过鼠标点一点,可以说是减少了很多不必要的工作量了。

    ! Q) F: h1 F5 p/ E* T* N; C( ?" T7 a8 s. ?2 i: b) j9 g  s
    03 Excel简化问题思路
    , }, J7 \) E+ ?6 m* p6 i
    / D: l) ^3 \# J- f, I# ]+ d通过上面的案例分享大家可以发现其实代码生成也没有想象中的那么难。ST公司官方有一个功能更加完善的工具STM32Cube,实现的功能可能也无非如此,但是思路我猜测是一致的。

    8 [" G( x" n7 z4 `
    " y4 Y& S( I. O* f8 i) }. M

    " d/ O( C  Z9 F这个例子也进一步说明Excel这个软件的强大,用好Excel可以减少很多不必要的重复工作!# @$ l' d. J" L$ e5 ^9 m) A

    * i' ?/ T/ o* `+ i6 P. j5 B
    其实我想说的是通过这个案例大家可以进一步思考下:

    ! L+ T7 V/ U, f5 e, |! ]6 H
    当面对重复的数字工作时,我们可以有意识地提醒自己是不是用几个Excel函数加一些简单的VBA编程就可以大大简化这些工作呢?
    ' l: A8 m, k' A8 K1 [1 Z  w) U: y
    工具下载链接见附件!# w3 @7 o* f; E& L& ^9 N7 }
      N  E0 f$ T9 T

    5 m. O& I2 v- M) K

    STM32IO口配置器.zip

    65.04 KB, 下载次数: 2, 下载积分: 威望 -5

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

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-7 16:58 , Processed in 0.078125 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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