找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3436|回复: 0
收起左侧

I am master!使用Nucleo334打造新一代的调试利器

[复制链接]
ID:127084 发表于 2016-6-17 15:16 | 显示全部楼层 |阅读模式
     通常,我们调试一个芯片的时候,往往是编写程序---下载---更改---下载。。。这种方法固然好,但是像我这样的懒人不大喜欢,我喜欢找一种一劳永逸的方法来解决。于是,开始动手写了这个I am Master!顾名思义,就是将Nucleo作为一个主机,与我们需要使用的软件进行通信。可能这样说你不是很理解,没关系,下面还会一 一介绍的。
   电脑作为控制端,通过串口与我们的Nucleo进行通信,而Nucleo根据电脑发送的字符,解析,并且产生一定的时序,与我们需要使用的芯片进行通信。

211051mi1fddccv575c5w4.png

    比如,电脑端通过串口向Nucleo发送 input 0 1 2,代表Nucleo需要将 0 1 2这三个引脚设置成为输入状态. 在我的程序中,将Nucleo左边的A0~A5作为IO部分,分别对应编号0-5。可以用于执行比较简单的任务。

注意:为了保证电脑端有一个良好的人机界面,大家务必使用能够满足linux终端要求的串口软件。比如puTTy,smartty。或者是超级终端。像一般的串口软件无法完成这个项目的要求。因为他们不能够改变字体的颜色。这里推荐大家使用smarTTY,如果使用puTTY的话需要更改我上传的程序。因为当我们按下Enter的时候,puTTY发送的是'',而smarTTY发送的是''。在附件中有最新的smarTTY的安装版软件。

    如果在使用smarTTY的时候,发现换行符不能正确显示,请进行这样的设置:
110038r5srsjle0nuuiqgg.png




版本更新介绍:

V1.0.0支持函数:

  • input
  • output
  • set
  • reset
  • toggle
  • read
  • spi
  • spi-config
  • man

V1.0.1新增函数:
  • servo
  • i2c-online
  • i2c-write
  • i2c-read

V1.0.2更新说明:
  • 将i2c-online更改为i2c-scan
  • i2c-read命令新增参数-a 可以用于在读取中指定一个寄存器地址。例如:从设备地址为0x90,寄存器地址为0x00的设备处读取1个字节可以使用 i2c-read -d 0x90 -a 0x00 -r 1 。需要注意的是:如果寄存器地址多于1个字节,只能先使用先写地址,在读的方式。例如:从设备地址为0x90,寄存器地址为0x0100的设备处读取1个字节只能分成两部:(1) i2c-write -d 0x90 0x01 0x00  (2) i2c-read -d 0x90 -r 1
  • 新增函数clear,用于清屏。

V1.0.3更新说明:
  • 为了在STM32系列中的可移植性,进行了一些并无实际卵用的更新。新建了config.h头文件。STM32F3系列的其余Nucleo包马上就会放出。
  • 修复了在不输入任何字符,仅按下回车的情况下,提示Unknow command的bug。
   113935jq01qcj9tc5crjzi.png
V1.0.4更新说明:
  • 上电之后SPI的模式被修改为模式0,时钟为4Mhz。
  • SPI读取(由-r参数指定的)数据被缓冲,使相临两次读取的时间由原先的100us缩减为7us。                                                                                                                122211rocnf1n1k82c842c.png
  • 串口数据改为中断输入方式,使用RingBuffer(1KB)进行缓存。
  • 支持发送命令文件。即将所有要发送的命令写入文件,每一条命令占用一行,通过smarTTY直接发送文件。具体的细节请参考本帖第6楼。


v2.0.0(重要更新)。
  • 优化代码结构。如果仅仅为了使用,而不是阅读代码的话,那么这次更新并无卵用。
  • 不再使用占用大量CPU时间的printf,改为termiosXXX函数。
  • 从gcc库中移植getopt。为命令行解释提供了统一的方法。
  • shell函数解析的时候,将使用 "" 引起的字符作为一个参数。不管""内的字符是不是含有空格。例如:输入spi [ "Hello world" 0x24 0xff ] ,经过shell解析传给spi的命令参数为:argv[0]==spi , argv[1] =[ , argv[2] ="Hello world" ,argv[3]= 0x24, argv[4]=0xff, argv[5] = ] 。注意:"Hello world"是一个参数,不同于windows和linux,这里为参数保留了引号。
  • 修改spi-config,如果spi-config未提供任何参数,将显示出现在spi的模式。包括模式,时钟频率,Msb/Lsb First。如果提供参数,将对参数进行解析。


吐槽,意见,或者建议请联系(PS有没有E语好的大神,帮忙翻译一下man的说明部分):
qianfanguijin@163.com
qianfanguijin@gmail.com


版权声明:
本软件仅供与学习交流之用,未经允许,不得用于商业用途。

I am master v2.0.rar (2.3 MB, 下载次数: 8)
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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