木生 发表于 2024-10-20 10:44:36

串口2不能通信,设置如下

本帖最后由 木生 于 2024-10-21 09:45 编辑


void SetTimer2Baudraye(u16 dat)// 使用Timer2做波特率.
{
    AUXR &= ~(1<<4);    //Timer stop T2R=0
    AUXR &= ~(1<<3);    //Timer2 set As Timer
    AUXR |=(1<<2);    //Timer2 set as 1T mode T2X12=1
    T2H = dat / 256;
    T2L = dat % 256;
    IE2&= ~(1<<2);    //禁止中断
    AUXR |=(1<<4);    //Timer run enable
}


// 串口初始化函数(需要根据实际情况编写)
void SerialInit() {
    // 设置串口参数,如波特率、数据位、停止位等
SetTimer2Baudraye(65536UL - (MAIN_Fosc / 4) / Baudrate2);

      S2CON &= ~(1<<7);   // 8位数据, 1位起始位, 1位停止位, 无校验
      IE2   |= 1;         //允许中断
      S2CON |= (1<<4);    //允许接收
      P_SW2 &= ~0x01;
      P_SW2 |=0;         //UART2 switch to: 0: P1.0 P1.1,1: P4.6 P4.7
              
}

晓飛飛 发表于 2024-10-21 19:35:37

你先用AIapp-ISP软件生成的串口初始化代码吧,你这个代码关联了其它一些定义,说不好哪里的问题。

lezjin 发表于 2024-10-23 19:14:58

看着没有什么问题,其它代码也放上来看下

神农鼎 发表于 2024-10-23 20:21:37



串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)

木生 发表于 2024-10-24 11:26:35

lezjin 发表于 2024-10-23 19:14
看着没有什么问题,其它代码也放上来看下

感谢回复,感觉代码没有问题。就是例程中的https://www.stcaimcu.com/forum.php?mod=viewthread&tid=11348&extra=page%3D1
页: [1]
查看完整版本: 串口2不能通信,设置如下