Skip to main content
gerardo2
Associate
September 30, 2009
Question

rs232

  • September 30, 2009
  • 4 replies
  • 996 views
Posted on September 30, 2009 at 12:29

rs232

    This topic has been closed for replies.

    4 replies

    gerardo2
    gerardo2Author
    Associate
    May 17, 2011
    Posted on May 17, 2011 at 13:23

    Hi Chris,

    Using a third interrupt, USART_IT_TC, problem (1) seems to be solved!

    I'm testing a rs232/rs485 converter (between pc and stm32 board). Without this interrupt, I checked the number of transmitted characters, and then move the RTS signal:

    if (NumberOfTransmittedChars == NumberOfCharsToTransmit) {

    - disable transmit

    - enable receive

    - move RTS

    }

    Using an oscilloscope, I saw the transmission also after the RTS move. I don't know the reason.

    Now I use the TransmissionCompleteInterrupt. Into this handler, I move the RTS. Now transmit,receive and RTS start and stop at the same time.

    About second question..? :)

    ccowdery9
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 13:23

    Can you look on an oscilloscope to examine the data on the TX / RX lines?

    Chris.

    gerardo2
    gerardo2Author
    Associate
    May 17, 2011
    Posted on May 17, 2011 at 13:23

    Hi all,

    I'm working on my first stm32 based project, starting from ''HyperTerminal_Interrupt'' example into stm32 fwlib.

    I have 2 questions:

    1) Both send and receive operations transfer one more character (0xfe during transmit and 0x0d during receive).

    Example:

    - if TxBuffer contains ''hello'', into pc I see ''xhello'', where 'x' is 0xfe

    - if I send ''hello'' from pc to board, RxBuffer contains ''xhello'' where 'x' is 0x0d

    Why?

    I tried to reduce baudrate from 115k to 9k, but nothing changed

    2) This example fires tx_interrupt only at reset, but I'd like to transmit every time I need. I think I have to modify registers (ref um0427).. right?

    Thanks

    jerry

    gerardo2
    gerardo2Author
    Associate
    May 17, 2011
    Posted on May 17, 2011 at 13:23

    up!

    I'd like to transmit every time I need using interrupt (not only after reset!). Is it possible?

    Example:

    while (1) {

    USART1->??? = ???;

    Delay(123);

    }

    Thanks

    jerry