你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【NUCLEO-L073开箱评测】串口命令行

[复制链接]
黑皮男 发布时间:2016-12-5 23:16
本帖最后由 黑皮男 于 2016-12-5 23:31 编辑
* D. ~6 a  h! i4 p* f# z) [' _
+ Q6 e2 o, j. Q) g3 b       上周兑换的NUCLEO-L073今天终于收到了,虽然当时是奔着F7去的,太激动了,操作太慢,最好整个个L073。我已成为ST开发板控了,每次积分兑换都要参加,F303,L476, F412(这个还在试用中),手上还有同学的两块正点原子的F103和F407开发板,别人收集邮票什么的,我收集开发板再加上一块A9开发板,还打算入手树莓派这样的,只不过还在犹豫。闲话少说,开箱首测串口通信。先看一下工程目录。 捕获.PNG
' c- N( Q2 q1 h( j" kbase---实现整个系统的基础代码,虽然不是和硬件相关的,但是像时基这样的回掉函数是在这里实现的
* j6 p6 d, k& F* E& Kbsp---硬件驱动层,屏蔽硬件,并提供相关接口给module
- n* {7 ?: |5 H% F$ _. Kmodule---代码模块,硬件无关层,调用bsp提供的接口实现硬件无关的软件接口,比如IIC,串口,SPI等
- k6 g& Q' @( T) H& Olibrary---库,包括lwip,st库,OS库等
. P! Z; _6 ]/ B- Luser---用户应用层,主要实现应用层序
1 d' f' u" Z4 N在后续的开发中,如果这中工程管理方法OK的话,后续还打算实现一个OS驱动接口,主要是基于OS提供基于操作系统的驱动接口。
8 K- v( W$ @7 d  V下面看一下串口的代码
: O- w. s+ ^( fuart.c---bsp中硬件驱动,提供的接口函数如下/ m2 W) G, m3 J. f
  1. void UartInit(USART_TypeDef *instance,UINT32_T baudrate);//串口初始化# R+ C5 R! Q" I# ]0 c" |
  2. UINT8_T UartWriteByte(USART_TypeDef *instance, UINT8_T data);//串口字节发送; k4 n4 ~( E# r
  3. void UartSetRxCb(USART_TypeDef *instance,RxCallback cb);//设置串口接收回调函数,当有数据接收到时会调用回掉函数。
复制代码
& N" W8 s0 p; V$ T0 C
com.c---module中实现的硬件无关抽象代码。下面是提供的接口8 b' G2 F1 ~: K5 l0 E$ X) [3 ?
  1. typedef enum{
    $ T' X# @4 Z+ L# X* V' ?4 B
  2.         COM1,9 b2 L* R- M" I7 D$ e
  3.         COM2,3 _! |& j( d& ]7 s* |
  4.         COMn  N% @: @9 V# e. P9 L8 A$ L+ T
  5. }Com_t;3 N$ h; A: W4 Z. j

  6. ' A8 M7 O+ f6 o
  7. UINT8_T ComInit(Com_t com, UINT32_T baudrate);//串口初始化; _  B+ ^" D7 Y6 r
  8. UINT8_T ComWrite(Com_t com, UINT8_T *buf, UINT16_T count);//串口数据发送,当count为0时,按字符串发送。
复制代码
" ~+ V( t9 W9 u6 s
. m2 l+ R  K& f
com_interface.c---提供串口接口,实现回调外部模块接口函数。
3 D$ s- R( \+ U
  1. void ComReceive(Com_t com, UINT8_T data)1 H! X, Z/ b  f  `$ }
  2. {- T6 R+ ^: v( {/ a* z5 Q( A8 b
  3.         switch(com)
    8 B( V) B, k6 e+ V2 J5 L' h
  4.         {
    ) R4 l% {/ }' `# @* {2 m
  5.         case COM1:
    3 B5 D6 V9 k) E
  6.                 //ConsoleInputData(MSG_COM1,data);//此函数是一个接口函数,处理接收到的串口数据
    $ s; ~$ M4 b$ M! _' m
  7.                 break;0 r; G8 w/ I5 ^" ~+ h$ {' }
  8.         case COM2:
    1 b* K, Q6 B$ z* r1 v

  9. . d; n  u8 Z  U2 p% @. ?4 k
  10.                 break;2 Q1 i1 ^, r# j' G; Y: F& h5 ^
  11.         }) ?% r' ?0 f! x% V" T1 y4 j5 I
  12. }
复制代码

6 L& h8 H* p- l8 A+ f. q, i. K: E+ t8 e6 A- N( V9 X7 B1 f
这里仅上传了串口相关的代码,命令行部分还在整理测试,暂时不上传了。看一下效果
5 {- }& U/ b+ e0 Z9 ]& n% z 捕获.PNG . J. n7 \7 O' n1 O- X9 A) R/ e6 W
1 G  D3 F4 x8 D8 d, A0 O7 q
加一张特写
! v1 T5 M- h. X; G5 R- W/ W+ N, l4 z0 a0 A, h. q4 J. K
IMG_20161205_213747.jpg 6 K- t! E1 j& X& ^0 s+ K# X4 F

; I6 f) B9 C+ w# j3 K% e

com.zip

下载

6.46 KB, 下载次数: 35

赞 收藏 2 评论13 发布时间:2016-12-5 23:16

举报

13个回答
leo121_3006061 回答时间:2016-12-6 01:22:56
恭喜
5265325 回答时间:2016-12-6 01:33:43
yhyeefocus 回答时间:2016-12-6 03:47:16
楼主牛X,学习
黑皮男 回答时间:2016-12-6 08:55:24
leo121_3006061 发表于 2016-12-6 01:22
" M) K) s* l/ e+ z# d! a9 O恭喜
  Y; J, [; l  E/ l: T
同喜同喜
黑皮男 回答时间:2016-12-6 08:55:47
yhyeefocus 发表于 2016-12-6 03:47: ]9 Z) a1 T3 M% P" {4 V$ u
楼主牛X,学习

. U* q" [# O( \( X+ O  F7 i貌似楼友起的好早啊
leo121_3006061 回答时间:2016-12-6 09:02:00
早起的鸟儿有虫吃
jackten 回答时间:2016-12-6 09:16:20
恭喜恭喜                    
斜阳 回答时间:2016-12-6 09:17:50
有命令解释器??
andypanfan 回答时间:2016-12-6 09:39:00
黑皮男 回答时间:2016-12-6 11:15:53
斜阳__ 发表于 2016-12-6 09:17
! B- V: O( t# r& f有命令解释器??

+ \: S9 M6 Q- Q( v参考正点原子的调试组件,只不过我是以空格分隔命令和各个参数
Stm32McuLover 回答时间:2016-12-6 11:38:17
yhyeefocus 回答时间:2016-12-6 13:04:44
黑皮男 发表于 2016-12-6 08:55% Y# s, u' v; @
貌似楼友起的好早啊

3 J( b9 W8 O" E2 t* j- i昨晚睡得早,今天起得早
limale 回答时间:2016-12-7 09:20:48
谢谢分享
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版