|
上周拿到申请的Nucleo开发板,今天终于有空上电把玩了。 一直在做基于CM3和CM0的应用,对于CM4还处于探索阶段。 3 n4 G1 g0 {( }( z& y+ A3 d 为了便于上手,暂时不深入寄存器操作,以固件库为主。 先在官方例程的基础上加入了串口收发的代码,做了一个入门试验。 实现内容: 1,LD2(绿灯)闪烁的同时,通过USART1向外发送数据buf[10];7 u$ @1 k n5 |; l 2,向USART1发送10个数据,可以更新buf[10]的内容。# J" e* M! _& Q% m
图1-1试验结果的截图 4 F6 U6 V4 i$ \! C8 d0 t+ n8 L
图1-2开发板-USB转232小板-PC接线截图 4 }6 V* T: a$ p1 e# v9 z下面对修改的代码进行简单的说明。 1)在main()函数中插入测试代码: 1.1在LED2代码前插入Test()函数,用于串口初始化。 8 x) X" c# m6 ~else /* Shield not mounted */ { : B1 `" U( K( k+ D- f" d3 F Test();//insert code) K4 S6 N" e. E9 c LED2_Blink(); }6 t" n2 O$ F6 l/ @3 }9 { 1.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); COM1_Send(buff,10);//insert code8 [. o2 d( P- e3 _ /* Wait for 500ms */ Delay(500); } else if(BlinkSpeed == 1)6 [ F8 A% z. |2 V" K/ A {$ Y* f! z( s: z STM_EVAL_LEDToggle(LED2); 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); } else if(BlinkSpeed == 2)/ ?3 x+ @; e* ]7 ]- {; b D$ W { STM_EVAL_LEDToggle(LED2); & a" o1 |5 Q4 i4 k- A* Y COM1_Send(buff,10);//insert code /* wait for 50ms */ 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 1.3中断处理程序中,通过接收数据来更新buff缓存中的数据。 extern u8 buff[]; u8 cur; 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; if (srg & 0x20) { cur = USART1->RDR; k& e) Y& B8 N5 X buff[index_us] = cur; index_us++; index_us %= 11; } } 4 a1 b" G6 `7 V3 Z, ?" _+ q h 2.试验程序的工程为:~\STM32_Nucleo_FW_V1.2.1\Projects\NUCLEO-F302R8\Demonstration\MDK-ARM\STM32F302_Nucleo_Demo.uvproj
STM32_Nucleo_FW_V1.2.1è¯éªç¨åº.rar
(1.36 MB, 下载次数: 159)
|
微信公众号
手机版
RE:【Nucleo板开发日志】+开发板入门程序(Keil_v5)---USART中断模式收发
回复:【Nucleo板开发日志】+开发板入门程序(Keil_v5)---USART中断模式收发
用于CAN、RTC、RS485等应用。
回复:【Nucleo板开发日志】+开发板入门程序(Keil_v5)---USART中断模式收发