-
赛元SC92F8463B的SSI中使用UART1与其他芯片通信问题
代码如下,程序没有报错,想实现的目的是,通过UART1发送A55A00H给另外的芯片,发送成功会有声音响起,但是没有反应,烦请路过的大佬帮忙看看,不胜感激!#include"Function_Init.H"#include"stdio.H"//选择三合一模式:#defineUart10#defineTWI1#defineSPI2#defineSSI_ModeUart1voidUart1_Init(uintFreq,unsignedlongintbaud);voidUART1_SendByte(unsignedchardat);voidDelay_ms(unsignedintms);bitUart1SendFlag=0;//Uart发送中断标志位bitUart1ReceiveFlag=0;//Uart接收中断标志位//主函数voidmain(void){//初始化UART1Uart1_Init(20,460800);//延时确保硬件稳定Delay_ms(100);//发送控制指令A55A00播放第一首歌曲UART1_SendByte(0x00);//唤醒信号Delay_ms(100);UART1_SendByte(0xA5);Delay_ms(100);UART1_SendByte(0x5A);Delay_ms(100);UART1_SendByte(0x00);Delay_ms(100);while(1){//主循环中可以添加其他功能}}voidUart1_Init(uintFreq,unsignedlongintbaud){P2CON&=0xFC;//TX/RX设置为输入带上拉P2PH|=0x03;OTCON|=0xC0;//串行接口SSI选择Uart1通信SSCON0=0x50;//设置通信方式为模式一,允许接收SSCON1=Freq*1000000/baud;//波特率低位控制SSCON2=(Freq*1000000/baud)>>8;//波特率高位控制IE1|=0x01;//开启SSI中断EA=1;TMCON=0X07;//------111;Timer0、Tiemr1和Tiemr2选择时钟FsysTMOD|=0x20;//00100000;Timer1设置工作方式2TL1=0xFC;//溢出时间:时钟为Fsys,则240*(1/Fsys)=20us;TH1=0xFC;TR1=0;ET1=1;//定时器1允许TR1=1;//打开定时器1}voidUart1_Int()interrupt7//Uart1中断函数{if(SSCON0&0x02)//发送标志位判断{SSCON0&=0xFD;Uart1SendFlag=1;}if((SSCON0&0x01))//接收标志位判断{SSCON0&=0xFE;Uart1ReceiveFlag=1;}}voidUART1_SendByte(unsignedchardat){TB8=0;//第9位数据设为0(通常用于奇偶校验,这里不用)SBUF=dat;//将数据放入发送缓冲区while(!TI);//等待发送完成TI=0;//清除发送中断标志}//简单延
2025-06-19 3 -
毕业去向
前辈们好,我在双非读控制科学与工程研究生,毕业是考公考编还是校招找工作啊
2025-06-17 16