
基于官方的有关例程:UART_TwoBoards_ComIT 该用意是使用两块板测试串口收发。9 j- \& I" {+ {8 O7 x# i% Y7 `8 s 这个笔记由此而开始: 1.虚拟串口驱动的波折 安装ST相关驱动后,发现虚拟串口(VCP)在XP系统的AMD机器上不能正常使用,换台非AMD机就正常了,只好先这样了,需要虚拟串口时就换其它机器啦.7 n8 i: {+ T @ 2.坏了UART1,改UART3 例程里用的UART1(PB6,PB7),折腾了几次,可能不太小心,觉得是把其中PB6玩坏了。只好准备改用UART3(PC10,PC11)。 UART3与板上的VCP通道接法:3 k. R. d& w4 X3 j PC10 (TX) --- CN3 RX: I& M$ Q$ z, Y) t: k: { PC11 (RX) --- CN3 TX 3.没有“双板”,找“助手” 原例程的用意是使用“双板”测试串口收发。在只有一块板,当然可以借助PC端的“串口助手”软件来测试。 4.测试主要过程及现象:: G. L$ q( l, k9 V/ |0 O" m 串口助手准备好后, 按NUCLEO板的黑色按纽,复位,绿色LED闪动 再按NUCLEO板的蓝色按纽,从串口发出一串字符“ ****UART_TwoBoards_ComIT****”,重复3次;绿色LED熄灭 在串口助手上可以看到对应的字符“ ****UART_TwoBoards_ComIT****” 在串口助手上把收到的一列字符,原样发回到NUCLEO板 过片刻,NUCLEO板上的绿LED重新亮起,说明收到了数据,并正确;如果LED是慢速闪动,那么肯定收到的字符串是不太一样的,认为是有错误的。(多个空格或少个空格,都不行,太过份了!) 串口的发送接收测试完毕! 改变波特率的测试:除9600外,还把波特率分别提高到19200,38400,56000(我的助手只有这么高了),都OK!4 c& l, B: e5 J/ Q. |( a( o - \% q1 y9 t" D% v' C; \' |: C 详情可见源码. 0 Z% o2 b7 ^4 T6 x5 `- p ************ main.h 里的原文及修改后的8 a& l* k$ t7 m5 S9 d8 ?1 X0 z8 B /* User can use this section to tailor USARTx/UARTx instance used and associated resources */. K6 {. D) u- Z; W8 a& j0 h /* Definition for USARTx clock resources */" j0 l9 i J( Y3 e% T /* #define USARTx USART1$ X7 l( q- N2 L/ ~0 n0 C# z #define USARTx_CLK_ENABLE() __USART1_CLK_ENABLE() #define USARTx_RX_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE()1 b7 G! ]# w0 p# i #define USARTx_TX_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE() #define USARTx_FORCE_RESET() __USART1_FORCE_RESET() #define USARTx_RELEASE_RESET() __USART1_RELEASE_RESET()1 e$ W& n' k: x7 ~ */7 z. \8 m {( Z( ` #define USARTx USART3 // 3 |
RE:【Nucleo板开发日志】串口折腾记(虚拟串口与UART3的对话)
RE:【Nucleo板开发日志】串口折腾记(虚拟串口与UART3的对话)
回复:【Nucleo板开发日志】串口折腾记(虚拟串口与UART3的对话)
RE:【Nucleo板开发日志】串口折腾记(虚拟串口与UART3的对话)
RE:【Nucleo板开发日志】串口折腾记(虚拟串口与UART3的对话)
RE:【Nucleo板开发日志】串口折腾记(虚拟串口与UART3的对话)