ST-LINK V2 DIY笔记(一)

最近一段时间调试STM32板子的时候,都是用JLINK+杜邦线,或者拿官方板子当STLINK用,可以用,但是体积比较大,有时候觉得比较麻烦。正好前一阵手头项目少,就想DIY一个STLINK。

图是网上找的,由于现在还没有验证完,暂时就不上图了。

 

打了10块板子,最后收到好像是11块,110个小板,顺便学了一下怎么V-CUT出板子。10cm*10cm以内,一般都是特价板,80块包邮。

电阻、电容的封装都是0603的,手焊的话,比0805封装的稍微难一点。刚开始焊了一块,试了试,可以下载程序,还没有做测试,正好第二天要把一款仪器给师兄调试,就让他顺便测试一下。

反馈给我的结果是很稳定,比他在X宝买的稳定很多,不会出现调试中断开连接的情况。

所以就多焊了几块:

这次焊芯片的速度倒是比之前快很多,不知道是不是烙铁好用的缘故,还是熟练了...

 

从师兄那把仪器拿回来之后,再调试变更的功能,发现STLINK不能调试,用ST-LINK utility可以下载程序。折腾了半天,修改了MDK的配置后,发现可以调试了...

今天再调试的时候,发现又不可以了...

用nucleo板子上集成的stlink-v2.1倒是一直可以下载...

我的电脑USB口有点问题,有时候会导致蓝屏,不知道是不是电脑的原因。不过也说不过去,因为官方开发板是可以用的。可能是v2.1和v2有区别。

准备上班之后,再到公司的电脑上试试能不能正常工作。

~2018.4.8 by cuter

测了好几天了,在公司电脑上也是可以用的,没什么问题。昨晚在自己电脑上烧写、仿真也没有出现问题,可能真的是我的电脑USB口不太稳定吧。

 

又多做了几个:

插入STLINK之后,红灯会闪烁,稳定下来后,说明可以正常工作了。在程序烧写和调试过程中,板子上的两个灯是交替闪烁的,调试暂停时,绿灯点亮。我用的高亮绿和普通红,调试过程中,绿光完全压制了红光。

SELECT
  COUNT(t.w_order_id) lineCount,
  SUM(ROUND(t.feel_total_money / 100, 2)) AS lineTotalFee,
  SUM(ROUND(t.feel_fact_money www.dashuju178.com / 100, 2)) AS lineFactFee
FROM
  w_orders_his t
WHERE 1=1
  AND DATE_FORMAT(t.create_time, www.taohuayuan178.com/'%Y-%m-%d') >= STR_TO_DATE(#{beginTime},'%Y-%m-%d') 
  AND DATE_FORMAT(t.create_time, www.thd178.com '%Y-%m-%d') <= STR_TO_DATE(#{endTime},'%Y-%m-%d')
  AND t.pay_state = #{payState}
  AND t.store_id LIKE '%#{storeId}%'
  limit 0,10

复制代码
复制代码

这条sql需求是在两千万的表中捞出指定时间和条件的订单进行总数总金额汇总处理。

优化sql需要根据公司的业务,技术的架构等,且针对不同业务每条SQL的优化都是有差异的。

 

  优化点1:

AND DATE_FORMAT(t.create_time, '%Y-%m-%d') >= STR_TO_DATE(#{beginTime},'%Y-%m-%d') 
AND DATE_FORMAT(t.create_time, 'www.wanmeiyuele.cn %Y-%m-%d') <= STR_TO_DATE(#{endTime},'%Y-%m-%d')

我们知道sql中绝对要减少函数的使用,像左边DATE_FORMAT(t.create_time, '%Y-%m-%d') 是绝对禁止使用的,如果数据库有一百万数据那么就会执行一百万次函数,非常非常影响效率。右边STR_TO_DATE(#{beginTime},'%Y-%m-%d')的函数会执行一次,但还是不建议使用函数。所以去掉函数直接使用 >=,<= 或BETWEEN AND速度就会快很多,但有的数据库设计时间字段只有日期没有时间,所以需要在日期后面拼接时间如:"2017-01-01" + " 00:00:00"。

更好的办法是用时间戳,数据库中存时间戳,然后拿时间戳去比较,如:BETWEEN '开始时间时间戳' AND '结束时间时间戳'

 

优化点2:

AND t.store_id LIKE '%#{storeId}%'

这句使用了LIKE并且前后匹配,前后匹配会导致索引失效,一般情况下避免使用,应该改成 AND t.store_id LIKE '#{storeId}%'

 

优化点3:

复制代码
复制代码

一般利用好索引,根据主键、唯一索引查询某一条记录,就算上亿数据查询也是非常快的。但这条sql需要查询数据统计需要用到COUNT和SUM,所以可以建立联合索引。

联合索引有一点需要注意:key index (a,b,c)可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 ,当最左侧字段是常量引用时,索引就十分有效。

所以把必要字段排放在左边key index(create_time,w_order_id,feel_total_money,feel_fact_money,payState,storeId)

再把新弄好的4只交替着用试试,没问题的话就上原理图、料单了,初步算了一下成本在10元左右。如果料用的差一些,价格更低。有想自己DIY STLINK V2的朋友,可以问我要空板,邮费自理。

你可能感兴趣的:(ST-LINK V2 DIY笔记(一))