
上周拿到申请的Nucleo开发板,今天终于有空上电把玩了。, _, ?* K7 v! f5 ^( @5 o s 一直在做基于CM3和CM0的应用,对于CM4还处于探索阶段。 为了便于上手,暂时不深入寄存器操作,以固件库为主。 先在官方例程的基础上加入了串口收发的代码,做了一个入门试验。, 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 ![]() 图1-1试验结果的截图 . l, |$ [' H* \/ Q5 k![]() 图1-2开发板-USB转232小板-PC接线截图 + p1 ]1 u- ?- H: B5 y& N& u下面对修改的代码进行简单的说明。 9 D v0 W9 c8 Q; `3 O1)在main()函数中插入测试代码: 1.1在LED2代码前插入Test()函数,用于串口初始化。 else /* Shield not mounted */4 V0 x+ J, _7 i6 W { Test();//insert code 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) {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 { 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); } ' w# H. a0 g: G else if(BlinkSpeed == 1)6 _. x, M6 d- d3 n& W5 ? {( N5 ~" x( A, r: @ STM_EVAL_LEDToggle(LED2); COM1_Send(buff,10);//insert code /* Wait for 100ms */ Delay(100); } else if(BlinkSpeed == 2). _7 f0 K# ]' B/ X% b8 t { STM_EVAL_LEDToggle(LED2); 4 |/ u7 J( a7 V2 { COM1_Send(buff,10);//insert code/ k x; J; F. E6 s2 {( @ /* wait for 50ms */ Delay(50); }7 m* B* a6 @) ~- T; @% j% } } 1.3中断处理程序中,通过接收数据来更新buff缓存中的数据。 extern u8 buff[];# ~2 e* i) N5 B+ e+ ]: {' L0 Y u8 cur; u8 index_us = 0; void USART1_IRQHandler(void) { 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; index_us++; index_us %= 11; } } 2.试验程序的工程为:~\STM32_Nucleo_FW_V1.2.1\Projects\NUCLEO-F302R8\Demonstration\MDK-ARM\STM32F302_Nucleo_Demo.uvproj3 ], f1 p5 U* T# X- q; _ ![]() |
RE:【Nucleo板开发日志】+开发板入门程序(Keil_v5)---USART中断模式收发
回复:【Nucleo板开发日志】+开发板入门程序(Keil_v5)---USART中断模式收发
用于CAN、RTC、RS485等应用。
回复:【Nucleo板开发日志】+开发板入门程序(Keil_v5)---USART中断模式收发