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

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

[复制链接]
Dylan疾风闪电 发布时间:2014-8-24 14:21
 上周拿到申请的Nucleo开发板,今天终于有空上电把玩了。4 L% B. u  `, o' n! @4 Z# h
一直在做基于CM3和CM0的应用,对于CM4还处于探索阶段。
2 f5 C3 a7 j; j; h, j 
) W, o& @# ?0 P1 W  P! H为了便于上手,暂时不深入寄存器操作,以固件库为主。5 H6 `4 B) e0 y( k0 J# i4 [; p
先在官方例程的基础上加入了串口收发的代码,做了一个入门试验。& O0 c: I  \) A
实现内容:1 k) X4 G6 r1 C/ C# Y: @9 Q
1,LD2(绿灯)闪烁的同时,通过USART1向外发送数据buf[10];
( i; o* U# s6 t+ T8 w2,向USART1发送10个数据,可以更新buf[10]的内容。: Q8 j+ S( ]* Y
  测试截图.jpg * b- \8 q  B  j5 s  I1 t9 c
图1-1试验结果的截图

3 v0 W7 H- q/ O( I: ]% q% w
  硬件接线图.JPG
/ E7 v% W* y/ a
图1-2开发板-USB转232小板-PC接线截图

% p; V' z) q+ k% p& d4 Y
 
! d: o& ?7 D+ `3 ]
下面对修改的代码进行简单的说明。
$ @2 ~6 I7 `- @& ?
1)在main()函数中插入测试代码:
) X6 q! o) C2 i* J
1.1在LED2代码前插入Test()函数,用于串口初始化。
5 K0 X' S% F9 G* k5 N
  else /* Shield not mounted */
3 R% E9 H. ?7 d) c& D  {   ; N; U9 W9 q5 _) ^  L
                Test();//insert code
# R! K3 y' C4 g; a# w4 w# h1 G% l    LED2_Blink();
& D" s+ c* T/ c- G" C  }
7 ~- |; C0 \4 l: Z 
3 {7 L3 d9 {# P0 p1 z1.2在LED2_Blink()函数中插入COM1_Send(*pTxBuff, length),实现数据buff的发送。! |0 S5 r; q8 P- b- k) e
while(1)! X' i. p1 p3 F- U9 m) ]
  {% H, g7 k5 V( I5 I/ y4 }
    /* Test on blink speed */
4 W" P$ ~( u* J5 p* L7 X    if(BlinkSpeed == 0)
2 n% v6 [8 I( W, ^  w5 W    {! L6 G- B+ L: r  x
      STM_EVAL_LEDToggle(LED2);
$ W6 w$ x' n6 P: n/ A. C                        COM1_Send(buff,10);//insert code* g& \: L  K4 f! F
      /* Wait for 500ms */      
# q) l- d! R# t      Delay(500);      ' J+ ^  ]  ]; ^2 J
    }      & _1 a& N$ S) j1 Y' h3 L9 Z
    else if(BlinkSpeed == 1)# m" Z$ X2 x' |, o1 k
    {& ^2 Y4 d: w7 X, k  y* o% b, h
      STM_EVAL_LEDToggle(LED2);1 v4 [$ S+ o. M1 r5 e
                        COM1_Send(buff,10);//insert code* n: F" S+ w. `! B" h
      /* Wait for 100ms */: F7 U  I# N4 Z( X/ K4 J
      Delay(100); 
5 d) P0 a. Y) n' ~    }
/ d0 |. x8 z, U: N  p$ ~    else if(BlinkSpeed == 2)$ M9 W3 A) ^9 V  Q
    {0 Y' _# a' \5 G6 {2 B* V
      STM_EVAL_LEDToggle(LED2);    
. n  G) A" f: B% l5 b                        COM1_Send(buff,10);//insert code
! J( P  Q- B, x3 P1 p      /* wait for 50ms */* w% q: W% U* C! D& b
      Delay(50);  2 k. n6 d/ b2 X3 x' ^7 T3 U
    }6 p1 r4 z# q  w) X
  }+ ?8 S$ w1 D+ p! _' Q
 $ w; ~: E4 b9 z8 ~% J# N0 h
1.3中断处理程序中,通过接收数据来更新buff缓存中的数据。$ f: s- `8 c! o. i$ @1 f
extern u8 buff[];
& S( {+ i1 P5 W7 y. I7 @5 W( eu8 cur;7 T" n: c' `& M1 }# L4 R; f% t
u8 index_us = 0;
1 Z7 n% u1 Z) Wvoid USART1_IRQHandler(void)7 z. C0 W3 j. o
{
) f/ G! M: G3 {% T& h* I$ V  u16 srg = USART1->ISR;- v$ b4 ]$ f# l$ a. V# r" o7 P4 Z
  if (srg & 0x20)
5 |8 [$ g) b: d  _( a4 ^5 w/ C  {   
6 x' x! ?) D9 X. _0 L2 P$ p5 K    cur = USART1->RDR;    # |5 v1 b, m0 g1 Z4 z1 g7 r! m" i
    
( r) v% H9 Q. Z& Z( ^+ A1 ?                buff[index_us] = cur;- w/ b( z. {' f% A) ^# Q1 }6 S
                index_us++;3 B- j$ j3 v9 i1 @. R
                index_us %= 11;: ]. }/ W  g4 S& }, h; I
  }6 @: ^8 H1 o7 I5 M2 u  C

2 |; l3 f8 \' G4 y! D6 f + m6 a6 S4 ~1 J' @9 n/ x! @. A
2.试验程序的工程为:~\STM32_Nucleo_FW_V1.2.1\Projects\NUCLEO-F302R8\Demonstration\MDK-ARM\STM32F302_Nucleo_Demo.uvproj9 g! M5 u" ?: V# K2 a9 D4 z( J
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板子;
$ c7 K1 S6 w; S# v. u0 w( e) ?$ p用于CAN、RTC、RS485等应用。
$ H3 O: P# L3 i& y6 H2 ?6 S6 S+ v 1-1.jpg ; z- Q1 J" C% L+ |. c. i/ `) @4 Q2 _
1-2.jpg
4 [  B3 _8 @7 d) E 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 手机版