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

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

[复制链接]
Dylan疾风闪电 发布时间:2014-8-24 14:21
 上周拿到申请的Nucleo开发板,今天终于有空上电把玩了。
. F9 S7 {; b0 ?一直在做基于CM3和CM0的应用,对于CM4还处于探索阶段。
5 X' n6 K: u7 P& w  m8 c* w 3 n4 G1 g0 {( }( z& y+ A3 d
为了便于上手,暂时不深入寄存器操作,以固件库为主。
! E3 \. F8 C1 v: n1 |0 ?! O" B7 M先在官方例程的基础上加入了串口收发的代码,做了一个入门试验。
7 {) t! K8 S* Y实现内容:
+ h& k' {+ j# }/ Z7 r# ?9 _2 B1,LD2(绿灯)闪烁的同时,通过USART1向外发送数据buf[10];7 u$ @1 k  n5 |; l
2,向USART1发送10个数据,可以更新buf[10]的内容。# J" e* M! _& Q% m
  测试截图.jpg
2 w! J% c" q  q4 E3 M  n0 K
图1-1试验结果的截图
4 F6 U6 V4 i$ \! C8 d0 t+ n8 L
  硬件接线图.JPG
+ [$ K) w  g7 E" `5 K9 D, ^
图1-2开发板-USB转232小板-PC接线截图
4 }6 V* T: a$ p1 e# v9 z
 

* J- N5 i, l5 `
下面对修改的代码进行简单的说明。

7 G7 E  T: h8 _
1)在main()函数中插入测试代码:

/ b8 |, D. E* Y  h! i* \# N
1.1在LED2代码前插入Test()函数,用于串口初始化。
8 x) X" c# m6 ~
  else /* Shield not mounted */
- L, |& Z$ ^" Y2 F  {   : B1 `" U( K( k+ D- f" d3 F
                Test();//insert code) K4 S6 N" e. E9 c
    LED2_Blink();
, g7 }' E  K- ?  }6 t" n2 O$ F6 l/ @3 }9 {
 
' v( h/ d0 b# A& F& x; n; A1.2在LED2_Blink()函数中插入COM1_Send(*pTxBuff, length),实现数据buff的发送。+ N9 p; |: P( D- @7 f5 }, A
while(1): h% S  ~) U, P
  {+ m: [5 ^* E* b: u, d
    /* Test on blink speed */+ r; j' h9 I% n% \6 K! w; v( C
    if(BlinkSpeed == 0)6 M/ j' b3 C8 s$ G7 a; U
    {2 |2 J5 T' k6 G, t$ \! U, Q3 {2 c1 G; w
      STM_EVAL_LEDToggle(LED2);
" T8 H7 Z1 t: A# _4 g& c                        COM1_Send(buff,10);//insert code8 [. o2 d( P- e3 _
      /* Wait for 500ms */      
9 B3 n+ [8 ?8 s      Delay(500);      
$ S6 h& a) o' X5 F0 X$ |    }      
6 n# i* S4 C. F2 I7 L    else if(BlinkSpeed == 1)6 [  F8 A% z. |2 V" K/ A
    {$ Y* f! z( s: z
      STM_EVAL_LEDToggle(LED2);
! O: d+ R7 L4 q; Q: V% D- `  B' o                        COM1_Send(buff,10);//insert code+ T7 V4 g4 o. V1 f1 u  d
      /* Wait for 100ms */0 Y( Q7 p9 O% j9 x( L5 N4 X5 @4 k
      Delay(100); 
+ t9 e) r0 O6 r* R    }
% G* y1 T6 E" o) z' }0 T    else if(BlinkSpeed == 2)/ ?3 x+ @; e* ]7 ]- {; b  D$ W
    {
+ S# ?' ^4 }- z  B% \8 _      STM_EVAL_LEDToggle(LED2);    & a" o1 |5 Q4 i4 k- A* Y
                        COM1_Send(buff,10);//insert code
! w6 r1 ~% r6 T9 d( n4 K      /* wait for 50ms */
8 j, [8 _! R9 w" I7 ^' ^* h      Delay(50);  # O. ~7 R5 m7 M  h3 Y# e& Y$ B/ d3 l
    }1 e( |+ n. e+ D5 N' n- a4 F* v
  }& [' d4 U1 a9 L, |# L+ F! H
 
* B5 R9 E, p: L% F+ m4 ^! |$ {1.3中断处理程序中,通过接收数据来更新buff缓存中的数据。
1 d8 L7 n% P$ V' ?1 P$ M8 l4 ~extern u8 buff[];
  j* l( ~8 ^6 ?7 y, ou8 cur;
# t+ U- l9 s9 s! i& a7 {0 [u8 index_us = 0;) ~5 J2 ]* d: r! P: y6 v
void USART1_IRQHandler(void)" N3 g) F2 W+ V9 g$ c
{4 ]# |, N2 _  J: u0 |* ^+ ]0 \1 a: N
  u16 srg = USART1->ISR;
$ m9 {, G6 u, p  if (srg & 0x20)
0 f6 c/ r, h$ H9 Y  {   
1 q  e$ t9 I/ A0 H* g# p5 N$ P2 M    cur = USART1->RDR;      k& e) Y& B8 N5 X
    
+ f& e# F7 |- U! i                buff[index_us] = cur;
6 W. N! x( I- X. [( w& T0 D/ [                index_us++;
6 v! R& y+ B$ D                index_us %= 11;
2 A8 q& W8 O8 E. ^. A" g  }
& D8 g) L1 J, L! @5 o} 4 a1 b" G6 `7 V3 Z, ?" _+ q  h
 
1 B$ X1 q- v/ L% ~/ |2.试验程序的工程为:~\STM32_Nucleo_FW_V1.2.1\Projects\NUCLEO-F302R8\Demonstration\MDK-ARM\STM32F302_Nucleo_Demo.uvproj
" m" H7 H+ u) L; s# D 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板子;- o/ [7 H  Z: ~5 G; d
用于CAN、RTC、RS485等应用。
& P3 D% k+ I  T8 b) {) B9 n 1-1.jpg
. R! P! I& N0 l 1-2.jpg
( H" N) L( {. ~+ B3 ~ 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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版