问答

汇集网友智慧,解决技术难题

21ic问答首页 - TAG - 串口通信
  • FPGA与LoRa模块串口通信问题 sos

    [i=s] 本帖最后由 zhw152 于 2024-3-21 17:59 编辑 [/i] [p=30, 2, left]自己画的FPGA的PCB板,FPGA与LoRa模块是通过串口相连的,但是传输不了数据。[/p][p=30, 2, left]FPGA和串口助手可以通信,串口助手和LoRa模块也可以通信,但是PCB板和LoRa通信不了,用signaltap能看到引脚发送数据,但是LoRa模块接收不到。下图是我的PCB板,Txd和Rxd直接与引脚相连。我用同样的程序在开发板上试过了,开发板也可以和LoRa模块通信。[/p][p=30, 2, left]开始以为是电平的原因,但是我设置成3.3的LVTTL电平之后也还是不行,会不会是我画的PCB有问题呢?[/p][p=30, 2, left]请各位大佬帮我解决一下。[/p]

    LoRa模块 串口通信 LORA FPGA

    2791浏览量 0回复量 关注量
  • 单片机串口通信问题

    [b][size=24px]单片机串口通信问题。只能发送,不能接收是什么原因?[/size][/b]

    发送 接收 原因 单片机串口 串口通信

    985浏览量 4回复量 关注量
  • 家人们,PIC串口通信的程序出问题了 sos

    刚学习PIC单片机的小白,用的dsPIC30f4011,程序是买板子送的,/*********************************************************************/ /*文件说明:uart发送接收*/ /*硬件配置: MCU: DSPIC30F4011, OSC: 使用片外部4M16倍频64MHz振荡器..*/ /*版本: v1.0*/ /*使用说明:P7短路帽连接AN0,P6短路帽连接为AVDD AVSS提供标准电源*/ /*修改记录:*/ /********************************************************************/ #include "p30f4011.h" #include "oled.h" _FOSC(0XC307);//FCKSM = 11;时钟切换禁止 0111=带有16倍频PLL的XT??16倍频PLL使能的XT晶振模式 (晶振频率为4 MHz到10 MHz _FWDT(0X0000);//关狗 _FBORPOR(0X3A3);//MCLREN禁止 欠压2.7V 上电延时64MS _FGS(0X03);// void UART_Init(void); void UART1_TX(unsigned char c); unsigned char UART1_RX(void);//接收数据 unsigned char Data; void System_Init(void)//系统初始化 { OSCCON = 0x33e0;//主振荡器 新振荡器主振荡器 4MHz64分频 PLL锁定(使能) TRISB = 0x0000; } void UART_Init(void) { U1MODE = 0x0000;//8位数据 无奇偶校验 1停止位 U1MODEbits.UARTEN = 1;//使能UART U1STA = 0x0000;//状态和控制寄存器 U1BRG = ((64000000/4/16)/9600)-1;//64MHz波特率9600(按照计算公式) IEC0bits.U1TXIE = 1;//发送中断允许 IPC2bits.U1TXIP = 7;//发送中断优先级7 U1STAbits.UTXEN = 1;// 使能发送 IEC0bits.U1RXIE = 1;//接收中断允许 IPC2bits.U1RXIP = 6;//接收中断优先级6 } void UART1_TX(unsigned char TXData)//发送数据 { while (U1STAbits.UTXBF); U1TXREG = TXData; } unsigned char UART1_RX(void)//接收数据 { unsigned char RXData; while (!U1STAbits.URXDA); RXData = U1RXREG; return RXData; } void Delay_1ms(unsigned int t)//t = 1000大概1s { unsigned int i,j; for(i = 0;i < t;i ++) for(j = 0;j < 100;j ++); } int main() { System_Init(); OLED_Init(); //初始化OLED OLED_Clear(); UART_Init(); disn(4,0,55);disn(5,0,69);disn(6,0,76);disn(7,0,67);disn(8,0,79);disn(9,0,77);disn(10,0,69);//Welcome // disn(1,1,36);disn(2,1,51);disn(3,1,48);disn(4,1,16);disn(5,1,45);disn(6,1,35);disn(7,1,53); while(1) { UART1_TX(UART1_RX()); Data = UART1_RX(); disn(4,1,Data/10000);disn(5,1,Data%10000/1000);disn(6,1,Data%1000/100);disn(7,1,Data%100/10);disn(8,1,Data%10); } } void __attribute__((__interrupt__, auto_psv)) _U1TXInterrupt(void)//发送中断 { IFS0bits.U1TXIF = 0; //清中断标志 } void __attribute__((__interrupt__, auto_psv)) _U1RXInterrupt(void)//接收中断 { IFS0bits.U1RXIF = 0; //清中断标志 } 最后的结果确实好像只能收发一个字节,收到1就能发1,但是收到123465这种一串就会出错,乱显示,如图: [img]https://pic2.zhimg.com/v2-f13e6aed7522dcae449131ab40a4dcfd_hd.png[/img] 请问各位大佬是哪里出错了呀程序,实在是找不到资料,找不到人问了

    嵌入式 单片机 串口通信 pic UART TE

    3264浏览量 0回复量 关注量
  • 求一个HC32L110C6PA的串口通信工程文件 赏3000家园币

    [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px]要求用中断的方式收发数据,用printf发送数据[/size][/font][/backcolor][/color]

    华大单片机 HC32 通信工程 串口通信 hc32l110 print

    18876浏览量 16回复量 关注量
  • 求一个HC32L110C6PA的串口通信工程文件

    要求用中断的方式收发数据,用printf发送数据

    华大单片机 HC32 通信工程 串口通信 hc32l110 print

    5233浏览量 2回复量 关注量
  • STM32串口通信控制电机

    我想用串口通信来控制无刷电机,串口代码借用正点原子,目前串口可以接收到发送的指令,但是不能控制电机,希望有前辈帮我解答一下,附上主函数代码int main(void) { u8 t; //typedef unsigned char uint8_t; u8 len; u16 times=0; //typedef unsigned short uint16_t; volatile unsigned char HALL_flag; LED_Init(); delay_init(); uart2_init(9600); //串口初始化为9600 PWM_GPIO_Init(); HALL_GPIO_Init(); LED1=1; while(1) { if(USART_RX_STA&0x8000) { len=USART_RX_STA&0x3fff; printf("\r\n您发送的消息为:\r\n"); for(t=0;tDR=USART_RX_BUF[t]; while((USART2->SR&0X40)==0); } printf("\r\n\r\n");//插入换行 USART_RX_STA=0; if(strcmp((char*)USART_RX_BUF,"电机1正转")==0) { HALL_flag =1; BLDC_CW(); printf("\r\n行走电机正转\r\n"); } if(strcmp((char*)USART_RX_BUF,"电机1停止")==0) { HALL_flag =0; BLDC_STOP(); printf("\r\n行走电机停止\r\n"); } }else { times++; if(times%5000==0) { printf("\r\nALIENTEK MiniSTM32开发板 串口实验\r\n"); printf("正点原子@ALIENTEK\r\n\r\n\r\n"); } if(times%200==0)printf("请输入数据,以回车键结束\r\n"); if(times%30==0)LED1=!LED1;//闪烁LED,提示系统正在运行. delay_ms(10); } } }

    STM32串口 控制电机 通信控制 串口通信 printf SAR

    4197浏览量 9回复量 关注量
  • STC89C52单片机串口通信问题,求解答

    使用的是STC89C52单片机,从另一个芯片上通过串口忘单片机上传数据,在串口调试助手上能看到传到单片机的数据,但是程序没有反应,求问大佬们为什么,多谢啦 #include void UsartConfiguration(); unsigned char num = 'A'; sbit LED2=P2^0; void delay(unsigned int i) //延时函数 { unsigned int k; for (k=0;k

    串口通信 单片机串口 STC89C52单片机 unsigned TI

    1564浏览量 4回复量 关注量