Skip to main content
David.Cheng
Associate III
September 7, 2019
Question

STM8 USART one time receive only two bytes

  • September 7, 2019
  • 2 replies
  • 920 views

0690X00000AQsoMQAT.png

INTERRUPT_HANDLER(USART1_RX_TIM5_CC_IRQHandler,28)
{
 /* In order to detect unexpected events during development,
 it is recommended to set a breakpoint on the following instruction.
 */
 
 //uint8_t temp = USART1->SR;
 
 
 if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET)
 {
 
 uint8_t temp = USART_ReceiveData8(USART1);
 if(pos < 20)
 {
 //pos = 0;
 RX_buf[pos] = temp;
 pos++;
 }
 
 
 }
 
 
 
 
 //USART_ClearITPendingBit(USART1, USART_IT_RXNE);
 
 
}
void usart_setup(void)
{
 GPIO_ExternalPullUpConfig(GPIOC, GPIO_Pin_3, ENABLE);
 GPIO_ExternalPullUpConfig(GPIOC, GPIO_Pin_2, ENABLE);
 
 CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE);
 USART_DeInit(USART1);
 USART_Init(USART1, (uint32_t)9600, USART_WordLength_8b, USART_StopBits_1,
 USART_Parity_No, (USART_Mode_TypeDef)(USART_Mode_Tx | USART_Mode_Rx));
 
 
 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
 USART_Cmd(USART1, ENABLE);
 
}

i dont know why one time only receive two bytes

    This topic has been closed for replies.

    2 replies

    Cristian Gyorgy
    Associate II
    September 8, 2019

    Hello Cheng!

    I personally don't understand much from your post.

    If you search some help, try to post something so that we can understand your problem.

    Good luck!

    David.Cheng
    Associate III
    September 9, 2019

    a rx to common interrupt effect me