基于官方的有关例程:UART_TwoBoards_ComIT 该用意是使用两块板测试串口收发。 这个笔记由此而开始: 1.虚拟串口驱动的波折 安装ST相关驱动后,发现虚拟串口(VCP)在XP系统的AMD机器上不能正常使用,换台非AMD机就正常了,只好先这样了,需要虚拟串口时就换其它机器啦. 2.坏了UART1,改UART3 例程里用的UART1(PB6,PB7),折腾了几次,可能不太小心,觉得是把其中PB6玩坏了。只好准备改用UART3(PC10,PC11)。 UART3与板上的VCP通道接法: PC10 (TX) --- CN3 RX PC11 (RX) --- CN3 TX0 W% G' J2 C% I 3.没有“双板”,找“助手” 原例程的用意是使用“双板”测试串口收发。在只有一块板,当然可以借助PC端的“串口助手”软件来测试。7 p6 s4 ~) @# Z# i5 u8 c 4.测试主要过程及现象:' M# D, s$ {2 G6 ~4 Y5 V 串口助手准备好后,+ l. d5 b1 J9 B W. [% [9 h7 T 按NUCLEO板的黑色按纽,复位,绿色LED闪动 再按NUCLEO板的蓝色按纽,从串口发出一串字符“ ****UART_TwoBoards_ComIT****”,重复3次;绿色LED熄灭: \% |- S$ X- Y* t/ w# y 在串口助手上可以看到对应的字符“ ****UART_TwoBoards_ComIT****”9 a' N2 X( u+ _2 e/ a3 x- ? 在串口助手上把收到的一列字符,原样发回到NUCLEO板' g( }& f3 V+ R; J ` 过片刻,NUCLEO板上的绿LED重新亮起,说明收到了数据,并正确;如果LED是慢速闪动,那么肯定收到的字符串是不太一样的,认为是有错误的。(多个空格或少个空格,都不行,太过份了!) 串口的发送接收测试完毕! 改变波特率的测试:除9600外,还把波特率分别提高到19200,38400,56000(我的助手只有这么高了),都OK!/ I% [* Q9 H% B2 b: ~ 4 M1 h4 ?; |) ^" ~7 O& o 详情可见源码. ************ main.h 里的原文及修改后的" _% N/ ?& h# x* l* g3 C /* User can use this section to tailor USARTx/UARTx instance used and associated * t$ ^, w6 M2 f resources */2 [: }: D" D6 r1 K /* Definition for USARTx clock resources */7 j# i- f7 Y, \ /* #define USARTx USART1# ~+ Z" E. ^+ {* d- L9 B #define USARTx_CLK_ENABLE() __USART1_CLK_ENABLE() #define USARTx_RX_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE()3 X$ b. C! R, b; X) _; [ #define USARTx_TX_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE()5 j" O% Z4 H. u. G1 h6 X6 @ #define USARTx_FORCE_RESET() __USART1_FORCE_RESET() #define USARTx_RELEASE_RESET() __USART1_RELEASE_RESET() */ #define USARTx USART3 // 3 |
RE:【Nucleo板开发日志】串口折腾记(虚拟串口与UART3的对话)
RE:【Nucleo板开发日志】串口折腾记(虚拟串口与UART3的对话)
回复:【Nucleo板开发日志】串口折腾记(虚拟串口与UART3的对话)
RE:【Nucleo板开发日志】串口折腾记(虚拟串口与UART3的对话)
RE:【Nucleo板开发日志】串口折腾记(虚拟串口与UART3的对话)
RE:【Nucleo板开发日志】串口折腾记(虚拟串口与UART3的对话)