串口3发送的问题

2019-03-23 16:35发布

1.png
我用STM8S207C8T6写程序,开发环境IAR。
串口3往外发数据。
void Uart3_Initial(void)

{     

    UART3_DeInit();
    UART3_Init((u32)115200, UART3_WORDLENGTH_8D, UART3_STOPBITS_1,
    UART3_PARITY_NO , UART3_MODE_TXRX_ENABLE);
    UART3_ITConfig(UART3_IT_RXNE_OR,ENABLE  );
    UART3_Cmd(ENABLE );


}
void UART3_SendByte(u8 data)
{
    UART3_SendData8((unsigned char)data);
  /* Loop until the end of transmission */
  while (UART3_GetFlagStatus(UART3_FLAG_TXE) == RESET);
}
void main(void)
{
  //asm("sim");         //先关闭总中断
  u32 i;
  u8 flag;

  CLK_Config();
  GPIO_DeInit(GPIOE);
  GPIO_Init(GPIOE,GPIO_PIN_6 | GPIO_PIN_7,GPIO_MODE_OUT_PP_HIGH_SLOW);
  GPIO_DeInit(GPIOA);
  GPIO_Init(GPIOA,GPIO_PIN_3 | GPIO_PIN_6 ,GPIO_MODE_OUT_PP_HIGH_SLOW);
  GPIO_DeInit(GPIOB);
  GPIO_Init(GPIOB,GPIO_PIN_6 | GPIO_PIN_7,GPIO_MODE_IN_PU_NO_IT);
  GPIO_DeInit(GPIOD);
  GPIO_Init(GPIOD,GPIO_PIN_3 | GPIO_PIN_2,GPIO_MODE_OUT_PP_HIGH_SLOW);
  Tim1_Init();
  //__enable_interrupt();  
  //Uart1_Initial();
  Uart3_Initial();
  /* Infinite loop */


  //asm("rim");         //打开总中断

  while (1)
  {
    //Connect_NewData();                                        //?D??ê?·?μ?×?D?êy?Yé?′?ê±???úμ?

    UART3_SendByte(0x55);
    for(i=0;i<300000;i++);

}
}
本来发的是0x55,可是串口助手收到的却是1.
高手给看看,怎么回事?谢谢!





此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
chenbingjy
1楼-- · 2019-03-23 21:31
 精彩回答 2  元偷偷看……
chenbingjy
2楼-- · 2019-03-24 01:47
ienglgge 发表于 2018-1-31 13:33
UART3_SendByte(0x55);你发别的数据,收到还是1吗。串口助手波特率设置和程序中是否一致。看看能否仿真或 ...

谢谢!时钟配置的有问题。
ddllxxrr
3楼-- · 2019-03-24 03:07
chenbingjy 发表于 2018-1-31 13:47
谢谢!时钟配置的有问题。

找到了就好
tiankai001
4楼-- · 2019-03-24 04:30
 精彩回答 2  元偷偷看……

一周热门 更多>