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

【Nucleo板开发日志】+开发板入门程序(Keil_v5)---USART中断模式收发

[复制链接]
Dylan疾风闪电 发布时间:2014-8-24 14:21
 上周拿到申请的Nucleo开发板,今天终于有空上电把玩了。, _, ?* K7 v! f5 ^( @5 o  s
一直在做基于CM3和CM0的应用,对于CM4还处于探索阶段。
6 ?$ K: A& U* S( Q* @. |' Y 
$ L( ?1 Y5 v2 F( l为了便于上手,暂时不深入寄存器操作,以固件库为主。
, r$ }8 v$ I) R% M% x先在官方例程的基础上加入了串口收发的代码,做了一个入门试验。, W% Z0 W" X2 d* t
实现内容:/ t% b% C( T. N8 h
1,LD2(绿灯)闪烁的同时,通过USART1向外发送数据buf[10];( J% u  J/ C* u  }. W/ X
2,向USART1发送10个数据,可以更新buf[10]的内容。" J$ m. i) j9 B5 n" z$ Y
  测试截图.jpg $ I" u3 i" e) f/ k5 J
图1-1试验结果的截图
. l, |$ [' H* \/ Q5 k
  硬件接线图.JPG
/ @! [: w7 L3 {! d/ g1 O
图1-2开发板-USB转232小板-PC接线截图
+ p1 ]1 u- ?- H: B5 y& N& u
 

6 W* Y7 Y8 {3 n  ], U  E  ^* t
下面对修改的代码进行简单的说明。
9 D  v0 W9 c8 Q; `3 O
1)在main()函数中插入测试代码:

7 g. L+ R$ v& P- J2 N- [
1.1在LED2代码前插入Test()函数,用于串口初始化。

! k9 L( ?& z# |( ^  else /* Shield not mounted */4 V0 x+ J, _7 i6 W
  {   
% |2 l; E* M3 w! ~5 g3 I: e/ H                Test();//insert code
+ b5 C& O7 d6 M4 Q5 N+ C* q    LED2_Blink();: s+ z/ P& O; H$ l: p. L) a7 r0 B
  }" j/ p* E7 t* Z4 ]1 A+ L# D$ Q
 9 O( Y% |/ o8 Q; z* \
1.2在LED2_Blink()函数中插入COM1_Send(*pTxBuff, length),实现数据buff的发送。  T, Z, m: s" [/ p( M
while(1)
6 h: b# {9 `$ F1 O  {5 g- ^. z( O. e8 l& A
    /* Test on blink speed */0 z+ @5 a2 ~$ G, O4 N6 N/ P# |
    if(BlinkSpeed == 0), \) [& p: O. ?: ^  A- Y
    {
& }, ]% o1 p3 C+ N, d7 i  X; Y      STM_EVAL_LEDToggle(LED2);5 B0 W( X5 l! t
                        COM1_Send(buff,10);//insert code! v4 Z8 W& L: t) G6 I6 N
      /* Wait for 500ms */      " Y+ G2 u1 i; x
      Delay(500);      
2 n- s' a7 W' [    }      ' w# H. a0 g: G
    else if(BlinkSpeed == 1)6 _. x, M6 d- d3 n& W5 ?
    {( N5 ~" x( A, r: @
      STM_EVAL_LEDToggle(LED2);
2 s8 x0 f" r- p; a$ r                        COM1_Send(buff,10);//insert code
5 ~  j6 o7 ]- v# d      /* Wait for 100ms */
; E" q, D; E1 [' E" g% o, G      Delay(100); 
6 L6 m" T+ S4 ]7 o9 p" ]" t8 h    }
. Z( ^6 K0 Q' Y1 Z9 a8 `8 S    else if(BlinkSpeed == 2). _7 f0 K# ]' B/ X% b8 t
    {
1 W* @. T4 D2 Z' L' d      STM_EVAL_LEDToggle(LED2);    4 |/ u7 J( a7 V2 {
                        COM1_Send(buff,10);//insert code/ k  x; J; F. E6 s2 {( @
      /* wait for 50ms */
" j7 |1 R, u5 B) ]5 T9 C7 z3 K      Delay(50);  
( g. G. ?1 m, Y7 b3 n1 R5 ?* ?( D" X. o    }7 m* B* a6 @) ~- T; @% j% }
  }
5 ?0 b2 j% a; M: c 
# s, M" j& ]3 {2 V. O' G1.3中断处理程序中,通过接收数据来更新buff缓存中的数据。
/ w$ u/ J+ \  D- Aextern u8 buff[];# ~2 e* i) N5 B+ e+ ]: {' L0 Y
u8 cur;
4 Q. T6 o. [. E% ?u8 index_us = 0;
# @! {0 V: V+ Z* bvoid USART1_IRQHandler(void)
4 }+ k! b; \6 o- W" X+ b{
, y4 K# F' {! g2 v6 L% W5 ^+ O  u16 srg = USART1->ISR;+ U3 S0 l9 r* \0 C8 h6 }9 O
  if (srg & 0x20): y- y5 W' J' G! J# O
  {   8 h, k4 E/ q( Q7 y2 \. y
    cur = USART1->RDR;    7 b" C0 _" C/ u& \# l1 q; ?& \( K; a
    , U1 Y# n% I$ H' i
                buff[index_us] = cur;
  r: ]& V" o. [6 M9 U6 e3 S                index_us++;
# Q8 g2 b& E& s8 `9 n4 w. R                index_us %= 11;
8 m. D1 L; i1 h$ \2 H  }
& w1 k& b& D* P
1 X4 J) a' y, ]  z% z' \ 
, r7 s" j$ j; P) i' b) b2.试验程序的工程为:~\STM32_Nucleo_FW_V1.2.1\Projects\NUCLEO-F302R8\Demonstration\MDK-ARM\STM32F302_Nucleo_Demo.uvproj3 ], f1 p5 U* T# X- q; _
STM32_Nucleo_FW_V1.2.1试验程序.rar (1.36 MB, 下载次数: 159)
收藏 评论7 发布时间:2014-8-24 14:21

举报

7个回答
霹雳之火 回答时间:2014-8-24 19:01:01

RE:【Nucleo板开发日志】+开发板入门程序(Keil_v5)---USART中断模式收发

期待后续更精彩分享
Dylan疾风闪电 回答时间:2014-9-9 17:35:52

回复:【Nucleo板开发日志】+开发板入门程序(Keil_v5)---USART中断模式收发

STM32F042C6T6的EVB板子;/ }2 K) w( d0 @, W+ y8 ^
用于CAN、RTC、RS485等应用。
2 k2 w+ C% C/ ?* `/ }  Y 1-1.jpg 3 U/ m# C  I" ~$ R! q
1-2.jpg 5 l0 F. e' K( H' B" I9 y
1-3.jpg
熊二在深圳 回答时间:2014-9-9 18:41:27

回复:【Nucleo板开发日志】+开发板入门程序(Keil_v5)---USART中断模式收发

俺也在学习中,不过俺是自己买的开发板
dyhg 回答时间:2014-11-7 12:06:48
kankan,zenmehuishi
lhwstm32 回答时间:2018-3-12 21:38:48
多谢楼主,很好的学习资料!
cgqlucklinux 回答时间:2018-6-12 11:48:01
顶上去
psposx 回答时间:2019-4-11 09:41:23
谢谢分享!!!!!!!!!!!!!

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版