-
HC32L17系列串口通信问题 sos
案例代码都是用9600作为波特率与串口通信,结果没问题,但是调到115200后,出现了乱码,发现是实际波特率的问题,于是用示例的App_RCH4MHzToPll48MHz代码,调到48MHZ,实际串口没问题,但是在与4G模块通信时,还是会出现数据缺失的问题 [img]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAAA5CAIAAABVrPmkAAADzElEQVR4Ae2b304UMRTG2+EhCL6T+iQ+A2IiJhhUWFB2V99IvBFv8AITRVxEVEBv1wyHfPvtaedfZ2eFUkLI1zPntD2//pkys2vs4Nz2z2z/t935ZV+d2pc/7PZ32xvZzSO7cWiff7brB3Zt3zx+bx7uLt19sLi4OB6PTfppA255bORXMHKR7XFCDga3TNMO2hVxUjPGdAEO+KKlZozJhhfZ4DwbnJXvcXZ1z668W7o32eOYDnT8KxRzYebgjMk3vvh/ugB3K9glcIGLIxicTCve1G7XcaQNuMCxiiMsgQscxwQuEJwdXuRn4IH8u/oz/3d1+8RuHdveN7v51b74YtYPzNq+Wd0zK2/5HBfYXjRhLcHxkQ03B75juKDYje8wqIodxIgKcYkD3SbmYZktOJzgQEFyQBECnl7BRm8N3nrmwQtttAfHObgJe9NG6yVX3WrFwn9VuKq222IbcG4OLjgsLgg3H++lcnCoRLnB3rnoGpwkgPQgOLE6RvERxIj1BuJqt6IlOHeyeJOBEYKzqmMUn3jASf6cOWumU+LpDVFGFCHcyudqqZxx9tkn+/SjffJBneN48KHdCegmo3xUUXZJGAUTimoP/Z8Qg8G5RG6XJYELHO8ELoELJBAYNtsZh11cberYxdmBffieUCcTrkf82YLm3JuJarROW36f9uDQSwjuLowQfBU5K+Hv67QVFZaIorYQMl1lk1JH4NAFdBHCm4xcLfFBhRBwVgJF8ZSZqKKUD642EPXB2Ue76nmcWh3e3sCH+6Q8kZuyc4ir3Zq9FjVO0kSjhtymc0sbcFIjOgHBLdUxig/wcXiJRhR86lgUR8Q2FjcdHINwBwlzkC+xbswLAe3BoSruEDQE3DhVMcIHgp2LNJwbCbf1ovor7DMEJ33iFYcBRydggRssKiXgQCwLFYUiBDojUWKHsbxybqhQzxZcYTPxXUjgAsc0gQsEt/Dmb/5Oenh++THgq/eqWf4x4Kv3qnge557jApuMI8wLjl9IJ3D+gU7g/FwqrdnrP+5STTOukptJ4KoZeT3SUvViqTYmcNWMvB4JnBdLtRF73OVXHeQcd2q3Tha2j7PeUbZxyMeRO/cn33Oorjpuj0bg1IPMuMlUZOcDl38i0zvjErgJzSJw2dbIXaoJXAI3IRCoimZcnaXKTw3VM0I8OAzs1vUPCwbHD1GhXXH9CQT2sAtwwBfYpxsRxuCy/uXX8qe/58DnOL45MB3o+FcoBtULzvRGlQ8yAYtfsoiRL6Gh2EQX4BhlbLyQTwIHFM1EMDh1/lDF6De7f28tAO9q96A8AAAAAElFTkSuQmCC[/img] 发送AT+CPIN?后,应该回复+CPIN:READY,但实际转发到串口查看,缺少数据D,实际代码也没往下跑,因为接收数据缺失 在检测4G模块正常的情况下,是哪里出现了问题?代码如下: /*author ljx*/ #include "hc32l17x.h" #include "uart.h" #include "gpio.h" int RxCount=0;//接收缓冲区坐标 char RxBuffer[1000];//接收缓冲区 //串口引脚配置 void usart1_Init(void) { stc_gpio_cfg_t stcGpioCfg; stc_uart_cfg_t stcCfg; stc_uart_baud_t stcBaud; DDL_ZERO_STRUCT(stcGpioCfg); DDL_ZERO_STRUCT(stcCfg); DDL_ZERO_STRUCT(stcBaud); Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE); //使能GPIO模块时钟 ///
=1000) RxCount=0; //字符数组满了,从头再来 } } 416浏览量 0回复量 关注量 -
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]
5865浏览量 0回复量 关注量 -
家人们,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] 请问各位大佬是哪里出错了呀程序,实在是找不到资料,找不到人问了
3446浏览量 0回复量 关注量 -
求一个HC32L110C6PA的串口通信工程文件 赏3000家园币
[color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px]要求用中断的方式收发数据,用printf发送数据[/size][/font][/backcolor][/color]
19835浏览量 16回复量 关注量 -
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;t
DR=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); } } } 4551浏览量 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 1782浏览量 4回复量 关注量