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

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

[复制链接]
黑皮男 发布时间:2016-12-5 23:16
本帖最后由 黑皮男 于 2016-12-5 23:31 编辑
' T$ ^, g0 h/ H; y+ m& k/ P
- j5 G, J/ i- n, m4 }: D       上周兑换的NUCLEO-L073今天终于收到了,虽然当时是奔着F7去的,太激动了,操作太慢,最好整个个L073。我已成为ST开发板控了,每次积分兑换都要参加,F303,L476, F412(这个还在试用中),手上还有同学的两块正点原子的F103和F407开发板,别人收集邮票什么的,我收集开发板再加上一块A9开发板,还打算入手树莓派这样的,只不过还在犹豫。闲话少说,开箱首测串口通信。先看一下工程目录。 捕获.PNG
1 c  C$ s8 ?, B2 V" r9 [base---实现整个系统的基础代码,虽然不是和硬件相关的,但是像时基这样的回掉函数是在这里实现的
" ]1 w+ ]( C4 j6 ^& t! Tbsp---硬件驱动层,屏蔽硬件,并提供相关接口给module
2 ?/ f, r2 F7 T* w# f7 F2 l7 g4 `' cmodule---代码模块,硬件无关层,调用bsp提供的接口实现硬件无关的软件接口,比如IIC,串口,SPI等( l9 s2 |# p# g* ]7 q
library---库,包括lwip,st库,OS库等
6 r# f' D2 `% B0 {1 x7 Auser---用户应用层,主要实现应用层序
- Z2 h4 p9 f# P# b在后续的开发中,如果这中工程管理方法OK的话,后续还打算实现一个OS驱动接口,主要是基于OS提供基于操作系统的驱动接口。
  O: v* o* {6 A7 K4 B下面看一下串口的代码
+ u9 @  G- k+ quart.c---bsp中硬件驱动,提供的接口函数如下0 v/ b2 p% H1 E  h  e: f, L
  1. void UartInit(USART_TypeDef *instance,UINT32_T baudrate);//串口初始化+ c3 H. Y0 \" R, c: G
  2. UINT8_T UartWriteByte(USART_TypeDef *instance, UINT8_T data);//串口字节发送
    ' F; z  B" P5 o2 D+ R
  3. void UartSetRxCb(USART_TypeDef *instance,RxCallback cb);//设置串口接收回调函数,当有数据接收到时会调用回掉函数。
复制代码

0 e, B5 {1 B. Ecom.c---module中实现的硬件无关抽象代码。下面是提供的接口, [# b! r6 Q- e/ h3 m& k. }# F
  1. typedef enum{2 z/ Y8 W# U( L9 v: y
  2.         COM1,
    8 h8 h# _0 d' C" D
  3.         COM2,
    8 a& L" z8 C1 v/ K
  4.         COMn+ }% m+ C2 D4 D2 X  _1 x
  5. }Com_t;
    - _8 t/ M' b/ }8 ]% r& K
  6. : f" Q9 a2 t% U+ B, v* M
  7. UINT8_T ComInit(Com_t com, UINT32_T baudrate);//串口初始化3 j+ @9 H& D" k  {4 F# S
  8. UINT8_T ComWrite(Com_t com, UINT8_T *buf, UINT16_T count);//串口数据发送,当count为0时,按字符串发送。
复制代码

  O% I* {0 A7 L, g/ a0 o# I- p: e6 T* [) |! l/ g
com_interface.c---提供串口接口,实现回调外部模块接口函数。
, j7 y  Z( C# u6 P9 a9 k
  1. void ComReceive(Com_t com, UINT8_T data)3 m$ I5 A; i3 v* q$ T
  2. {: J4 o6 s$ n- M4 ]: O+ o
  3.         switch(com)
    # x2 K+ _$ R( U
  4.         {
    5 C1 ?4 i9 d! c
  5.         case COM1:; A3 K4 G* s8 q# ~, K. v5 K) v( g
  6.                 //ConsoleInputData(MSG_COM1,data);//此函数是一个接口函数,处理接收到的串口数据/ H) Q; x3 Y# q
  7.                 break;
    5 q0 g  B& b, J: e) C5 X) {7 X
  8.         case COM2:
    2 I+ k- k% p7 i1 u

  9. : _# h% {  C1 k: z+ I/ j
  10.                 break;% @9 e& F" {$ P
  11.         }
    8 i1 S/ l" _4 u) Q
  12. }
复制代码
4 k' D; c* X: t& l( s& v- ~
1 o. W; a7 g" l2 ]: |6 |
这里仅上传了串口相关的代码,命令行部分还在整理测试,暂时不上传了。看一下效果) \$ b9 i* c' Q2 t
捕获.PNG # s) f, p9 U1 X1 n, q& S
  T- l- T4 f1 m, Q0 S( M0 |) D
加一张特写( ?4 ?2 ^* \% u9 a, [( l4 m+ X2 d

( x4 v" `1 b& N2 l. V% X* U' r$ ` IMG_20161205_213747.jpg : a7 F; G: ^& i+ L1 x* D" G6 v

& V, p& k. l8 w: n" r6 H. ]# n

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
) L+ T% R" S- G. @( S6 O4 ~恭喜
: j4 G% |$ z& F) }/ a% ^
同喜同喜
黑皮男 回答时间:2016-12-6 08:55:47
yhyeefocus 发表于 2016-12-6 03:47
' `: w. ]/ F& i* f; I6 J楼主牛X,学习
! V; l9 Q7 F4 ]) @* u
貌似楼友起的好早啊
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
5 A6 J! D- V; E6 {5 ^; [有命令解释器??

# L& [0 r% i, T参考正点原子的调试组件,只不过我是以空格分隔命令和各个参数
Stm32McuLover 回答时间:2016-12-6 11:38:17
yhyeefocus 回答时间:2016-12-6 13:04:44
黑皮男 发表于 2016-12-6 08:556 C4 B" \! H% t' I
貌似楼友起的好早啊

( e% A* a; x1 @5 R昨晚睡得早,今天起得早
limale 回答时间:2016-12-7 09:20:48
谢谢分享

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版