STM32
直播中

王银喜

7年用户 2386经验值
私信 关注
[问答]

为什么STM8不能正常RS485通信?

其中PD4是发送接收选择,我依次发送1,2,3...9 串口调试助手接收到的是7F,3F,7E,1F等。这是为什么啊?
void uart_init()
{
  UART3_CR1=0x00;
  UART3_CR2=0x00;
  UART3_CR3|=0x00;
  UART3_BRR2=0x00;
  UART3_BRR1=0x0D;
  UART3_SR=0;
  UART3_CR2=0x01;//接收发送中断使能
  
}
void main( void )
{
  unsigned char temp;
  temp=1;
  //启用内部高速晶振2MHz
  CLK_ICKR|=0x01; //开启内部HSI
  while(!(CLK_ICKR 0x02));//HSI准备就绪
  CLK_SWR=0xe1; //HSI为主时钟源
  CLK_CKDIVR=0x18; //2Mhz
  asm("rim");
  uart_init();
  PD_DDR_DDR4=1;
  PD_CR1_C14=1;
  PD_CR2_C24=0;
  PD_ODR_ODR4=1;  //默认为发送有效
  
  while(1)
  {

   
    UART3_CR2=0x00;//a处
    UART3_DR=temp;//要发送的数据

    UART3_CR2=0x08;//b处
    temp++;     
    while(!UART3_SR 0X80);
  }
}

回帖(2)

李件杰

2024-4-28 09:32:37
先看一下TXD的波形,连续发0x55,看一下波特率对不对。
举报

陈林

2024-4-28 09:33:16
是程序的问题
举报

更多回帖

发帖
×
20
完善资料,
赚取积分