主要是在目标板上从微机STM32F091RC的串行UART输出垃圾

时间:2016-10-31 14:00:42

标签: serial-port stm32 uart mbed stm32f0

预计首先将printf系列软件串行输出到Windows7 PC:

  

main()************************** SW START项目2016-10-30 x1

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

  

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

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

Serial pc(USBTX, USBRX);

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

Serial pc(SERIAL_TX, SERIAL_RX);

在9600,一些字符是正确的,大多数是垃圾。 我已经尝试过替代目标和电缆,同样的问题。 PC的终端程序(TeraTerm或PuTTY)设置为8,n,1。 看着mbed图书馆;默认配置是8个数据,没有奇偶校验,1个停止。

USB /串行转换器电缆是:FTDIChip TTL-232R-RPi(通常用于Raspberry Pi)。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我想这已不相关了,但你必须注意这一点。

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

arm uart

答案 2 :(得分:0)

Ensure you have correct parity and bits. Most people (and Arduino) use 8N1 by default, but STM32 sample code uses 7O1 by default. See here: https://community.st.com/thread/40340-stm32cubefwf2v140projectsstm32f207zg-nucleoexamplesuartuartprintf-printing-garbage-data-over-the-terminal