0

预计第一行 printf 软件串行输出到 Windows7 PC 是:

main() ************************** 软件启动项目 2016-10-30 x1

实际串行输出(在 TeraTerm 或 PuTTY);

▒▒▒▒() j**j*j**j*j**j*j**j*j**j*j ▒▒Ӕ▒Ҕ ▒▒▒▒▒▒▒ r01v-q0-30▒q

从 mbed 或 VisualGDB 到 NUCLEO 评估板,Serial 工作得很好。IE。:

Serial pc(USBTX, USBRX);

现在,我正在使用 STM32F091RC 将 VisualGDB 运行到实际的目标板上。
IE。:

Serial pc(SERIAL_TX, SERIAL_RX);

在 9600,一些字符是正确的,大多数是垃圾。我试过备用目标和电缆,同样的问题。PC 的终端程序(TeraTerm 或 PuTTY)设置为 8,n,1。在 mbed 库中查找;默认配置为 8 个数据,无奇偶校验,1 个停止。

USB/串口转换器电缆为:FTDIChip TTL-232R-RPi(通常用于树莓派)。

4

3 回答 3

0

确保您有正确的奇偶校验和位。大多数人(和 Arduino)默认使用 8N1,但 STM32 示例代码默认使用 7O1。见这里:https ://community.st.com/thread/40340-stm32cubefwf2v140projectsstm32f207zg-nucleoexamplesuartuartprintf-printing-garbage-data-over-the-terminal

于 2018-03-22T23:55:42.870 回答
0

我想这不再相关了,但是您必须注意这一点。

  • 信号电平是 3.3v 而不是 5v,并非所有 USB UART 适配器都能正常工作
  • 极性与标准相反,即起始位为 1.5 位低,如这里

手臂UART

于 2018-01-05T17:30:20.573 回答
0

可能是评估板和目标板之间的时钟不匹配。假设您有正确的接地。另一个问题可能是配置中的数据位数关闭。

于 2016-11-02T20:32:58.240 回答