问答

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

21ic问答首页 - TAG - 串口
  • GD32F470串口波特率实际最大速度

    目前测试了软件发-> dma收,最大波特率 3.5M(主频240Mhz) 求教各位大佬还可以有更快的速度吗

    MUC 单片机 国产芯片 串口

    7911浏览量 46回复量 关注量
  • 将项目工程从GD32F407移植到GD32F207后串口问题 sos

    现在已经将工程在GD32F407上移植到GD32F207上,在GD32F207上测试串口功能,用工程代码跑会出现乱码;然后就换了官方例程,还是会出现乱码,请问各位大佬一般会由哪些原因导致这些问题呢?

    GD32F207 GD32F407 乱码 串口

    1251浏览量 0回复量 关注量
  • STC15W4K61S4,内部rc串口二异常

    使用内部22.1184m rc,产生115200或者9600的波特率,输出都是乱码, 只有换成内部11.0592m rc输出才能正常,是什么原因? 这款单片机内部rc最高27m,串口计算器在22.1184m时115200和9600误差是零,下载校准频率误差不超过0.1% 什么原因可能导致的在非115200波特率时乱码? 初始化如下 void UartInit(void) //115200bps@22.1184MHz { P_SW2 &= 0xfe; //选择p10/p11位置为串口2 S2CON = 0x50; //8位数据,可变波特率 AUXR &= 0xFB; //定时器2时钟为Fosc/12,即12T T2L = 0xFC; //设定定时初值 T2H = 0xFF; //设定定时初值 AUXR |= 0x10; //启动定时器2 IE2 |= 0x01; //使能串口2中断 AUXR |= 0x14; //启动定时器2 }

    rc 串口 STC15W4K 定时 定时器

    5979浏览量 3回复量 关注量
  • HK32F030F4P6 串口不能烧录

    BOOT0,3.3V 连接上拉电阻10K,或者直接接VCC电压,不能用串口烧录。更换STM32F030F4P4,能够烧录。BOOT0=0,用SW接口烧录没问题。

    烧录 串口 boot

    1001浏览量 3回复量 关注量
  • 生泉MP8955/8不支持串口下载hex文件吗

    生泉MP8955/8不支持串口下载hex文件吗?有谁知道,8051内核

    串口 串口下载 hex文件 内核 51内核

    769浏览量 3回复量 关注量
  • atmega8A 使用外置晶振和内置LC串口都是乱码..

    不管内部晶振还是熔丝到外部晶振都不行... 会是哪里出问题呢?

    串口 晶振 ATmega8

    654浏览量 3回复量 关注量
  • 关于GD32F450串口irDA收发以及串口配置问题

    最近在做一个关于串口irDA的红外通信模块,GD32F450做串口初始化的时候 我使能了串口收发以及红外功能,但是数据能发不能接收是怎么一回事呢?不知道有没有大佬用过GD 的irDA??串口初始化代码如下: void gd_eval_com_init(uint32_t com) { /* enable GPIO clock */ uint32_t COM_ID; if(EVAL_COM1 == com) { COM_ID = 0U; } rcu_periph_clock_enable( EVAL_COM_GPIO_CLK); /* enable USART clock */ rcu_periph_clock_enable(COM_CLK[COM_ID]); /* connect port to USARTx_Tx */ gpio_af_set(EVAL_COM_GPIO_PORT, EVAL_COM_AF, COM_TX_PIN[COM_ID]); /* connect port to USARTx_Rx */ gpio_af_set(EVAL_COM_GPIO_PORT, EVAL_COM_AF, COM_RX_PIN[COM_ID]); /* configure USART Tx as alternate function push-pull */ gpio_mode_set(EVAL_COM_GPIO_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP,COM_TX_PIN[COM_ID]); gpio_output_options_set(EVAL_COM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,COM_TX_PIN[COM_ID]); /* configure USART Rx as alternate function push-pull */ gpio_mode_set(EVAL_COM_GPIO_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP,COM_RX_PIN[COM_ID]); gpio_output_options_set(EVAL_COM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,COM_RX_PIN[COM_ID]); /* USART configure */ usart_deinit(com); usart_baudrate_set(com,115200U); usart_stop_bit_set(com, USART_STB_1BIT); usart_receive_config(com, USART_RECEIVE_ENABLE); usart_transmit_config(com, USART_TRANSMIT_ENABLE); // usart_irda_lowpower_config(com, USART_IRLP_NORMAL); usart_irda_mode_enable(com); usart_enable(com); /* USART interrupt configuration */ nvic_irq_enable(UART3_IRQn, 1, 1); /* enable USART0 receive interrupt */ usart_interrupt_enable(UART3, USART_INTEN_RBNEIE); // /* enable USART0 transmit interrupt */ // usart_interrupt_enable(USART0, USART_INTEN_TBEIE); }

    串口 GD32F450 COM pi IO

    717浏览量 1回复量 关注量
  • 华大HC32L110_F003_005开发板如何连接pc的串口进行uart的调试?

    仔细看了《HC32L110_HC32F003_HC32F005系列的MCU开发工具用户手册Rev1.0.pdf》关于uart的部分,是这样描述的: [i][color=#000080][color=#000][font=TimesNewRomanPSMT][size=14.04pt]3.1.4 UART [/size][/font][/color][font=宋体][size=14.04pt]接口[/size][/font][/color][/i] [i][color=#000080][font=TimesNewRomanPSMT][size=11.04pt]STK [/size][/font][font=宋体][size=11.04pt]在板调试模块预留了 [/size][/font][font=TimesNewRomanPSMT][size=11.04pt]1 [/size][/font][font=宋体][size=11.04pt]组 [/size][/font][font=TimesNewRomanPSMT][size=11.04pt]UART [/size][/font][font=宋体][size=11.04pt]接口,需要使用 [/size][/font][font=TimesNewRomanPSMT][size=11.04pt]MCU [/size][/font][font=宋体][size=11.04pt]串口功能时,请将 [/size][/font][font=TimesNewRomanPSMT][size=11.04pt]UART [/size][/font][font=宋体][size=11.04pt]接口 [/size][/font][font=TimesNewRomanPSMT][size=11.04pt]CN8[/size][/font][/color][/i] [i][color=#f00000][color=#000080][font=宋体][size=11.04pt]上的信号通过飞线连接至 [/size][/font][font=TimesNewRomanPSMT][size=11.04pt]MCU [/size][/font][/color][color=#000][font=宋体][size=11.04pt][color=#000080]对应串口引脚。[/color][/size][/font][/color][/color][/i] [color=#f00000][color=#000][font=宋体][size=11.04pt][color=#f00000][color=#f00000]查看了原理图,好像和开发板的对不上,比如:调试板上没有CN3,PCB板的部分电路和开发板的也不一致。[/color][/color] [/size][/font][/color][/color] [color=#f00000][color=#000][font=宋体][size=11.04pt]我理解了半天,也没搞明白该怎么接。比如:[/size][/font][/color][/color] [color=#f00000][color=#000][font=宋体][size=11.04pt]1.提供的样例程序是用P35,P36端口作为uart1_tx和uart1_rx的,但检查了线路,丝印为CN2上的P35,P36已经和MCU对应的引脚原本就是连着的。(PCB板上画的是CN7,CN8,但开发板的丝印上却是:CN2,CN3,每个引脚实际上都已经连到CN2和CN3上了)[/size][/font][/color][/color] [color=#f00000][color=#000][font=宋体][size=11.04pt][color=#f00000]2.查看原理图,貌似是通过飞线,把P35替换掉CN2的io的pin上,把p36插到cn2的clk上,然后用串口线连到调试板的J5的:gnd,Txd,Rxd上。我把uart_int的程序编译烧进去后,这样跳线接了一下,但没任何反应。[/color][/size][/font][/color][/color] [color=#f00000][color=#000][font=宋体][size=11.04pt][color=#f00000]请专家指点,该怎么接,才能调试uart的串口通讯?[/color][/size][/font][/color][/color] [color=#f00000][color=#000][font=宋体][size=11.04pt][color=#f00000]PS:我已经把调试板和开发板掰开了。[/color][/size][/font][/color][/color] [color=#f00000][color=#000][font=宋体][size=11.04pt][color=#f00000] [/color][/size][/font][/color][/color] [color=#f00000][color=#000][font=宋体][size=11.04pt][color=#f00000] [/color][/size][/font][/color][/color] [color=#f00000][color=#000][font=宋体][size=11.04pt][color=#f00000] [/color][/size][/font][/color][/color]

    调试 pc 开发板 hc32l110 串口

    868浏览量 5回复量 关注量
  • 东软载波SSC1643窄带低速模块通信 sos

    目前,第一部是通过东软模拟表软件使得单个模块能够自发自应答,目前已经实现。下一步就是通过两个模块实现传输通信,两个模块分别通过串口连接至电脑,两模块通过电力线的L、N连接。通过PC端根据DTL645规约发送报文进行通信测试,另一个模块始终没有应答或者其他信息的变化。搜索 [align=left]复制[/align]

    东软载波 通信 窄带 串口 pc

    704浏览量 0回复量 关注量
  • CC3235官方例程at_commands的AT_RecvFrom指令使用方法

    CC3235官方例程at_commands的AT_RecvFrom指令接收到的数据怎么获取,串口怎么不会打印出来,单独回调一个OK.请哪位有使用过的指导一下。

    command ROM 指令 串口

    12804浏览量 2回复量 关注量
  • 有偿请教关于18F66k22串口假死问题。

    [i=s] 本帖最后由 taijing33 于 2020-11-16 15:17 编辑 [/i] 问题描述:使用了串口1和2,接受都是中断高优先级,发送没用中断。串口1连接的485设备,实际外部没用连接使用。串口2通过232连接的串口屏。问题出在串口2上。现在的问题是客户反应屏幕不能设置,显示正常,经判断就是串口2不能进入接受中断了,但是发送是正常的,就是假死了、。网上百度了有关信息。程序中也做了帧错误和数据溢出处理。我在办公室连续测了2天,各种乱按摔打,。就是不能重现客户遇到的问题。很是郁闷。但是客户反应的真真切切。以前在程序操作内部ee的时候关闭了中断,串口屏操作稍快就会,造成串口假死,但是我现在已经处理了。本以为解决了这个问题,没想到 到客户哪里,还是有这种情况。这种情况在客户哪里 也是几天有可能出现。但是一定会出现。 串口屏操作一次发给单片机的数据 一般不超过20个。 我的串口2接受处理逻辑。 大体意思是 串口有数据中断时,赋值Comdelay =2;一股脑的吧所有数据都接受进数组 Usart1_rbuff[100];数据一直有的话 Comdelay一直等于2; 然后再定时器中断中Comdelay --;定时器是10ms进一次中断。当Comdelay ==0认为没有数据了,这时候在接收到的数据中 找出 振头和帧尾 并进行CRC运算确认数据的正确。 下面是代码: 串口2和1的初始化代码 void config_uart1(void) { PMD1bits.RTCCMD = 1; TRISCbits.TRISC7 = 1; TRISCbits.TRISC6 = 0; TXSTA1bits.TXEN = 1; PIE1bits.TX1IE=0; //????TX PIE1bits.RC1IE=1; //RX //INITIALIZING EUART, 9 bits, 9600 baud rate PIR1bits.TX1IF = 0; //Clear EUSART Transmit Interrupt Flag bit PIR1bits.RC1IF = 0; //Clear EUSART Receive Interrupt Flag bit TXSTA1 = 0x24; //Synchronous mode:Selects 9-bit transmission, High speed BRGH=1, Transmit enabled RCSTA1 = 0x90; //Synchronous mode:Selects 9-bit reception, Continuous Receive Enable, //Serial port enabled(configures RX/DT and TX/CK pins as serial port pins) // SPBRG1 = BAUD9600; //11.0592MHz, BRGH=1, 9600bps SPBRG1 = 51; //8MHz, BRGH=1, 9600bps ODCON1 = 0; ODCON2 = 0; ODCON3 = 0; PIE1 = 0x20; //Peripheral interrupt disable PIE2 = 0; //Peripheral interrupt disable PIE3 = 0x20; //enable RC2IE/TX2IE/RTCCIE PIE4 = 0; //enable RC2IE/TX2IE/RTCCIE PIE5 = 0; //enable RC2IE/TX2IE/RTCCIE PIE6 = 0; //enable RC2IE/TX2IE/RTCCIE IPR1 = 0x20; //All peripheral interrupt /time interrupt low priority IPR2 = 0; //All peripheral interrupt /time interrupt low priority IPR3 = 0x20; //All peripheral interrupt /time interrupt low priority IPR4 = 0; //All peripheral interrupt /time interrupt low priority IPR5 = 0; //All peripheral interrupt /time interrupt low priority IPR6 = 0; //All peripheral interrupt /time interrupt low priority IPR1bits.RC1IP = 1; MAX485_EN = 0; } void config_uart2(void) { //??2 // PMD3=0xff; //外设模块禁止 // PMD2=0xff;//外设模块禁止 // PMD1=0x78;//外设模块禁止 // PMD0=0xc0;//外设模块禁止 //EECON2 = 0x55; //EECON2 = 0xaa; PMD1bits.RTCCMD = 1; TRISGbits.TRISG2 = 1; TRISGbits.TRISG1 = 0; TXSTA2bits.TXEN = 1; PIE3bits.TX2IE=0; //??TX //INITIALIZING EUART, 9 bits, 9600 baud rate PIR3bits.TX2IF = 0; //Clear EUSART Transmit Interrupt Flag bit PIR3bits.RC2IF = 0; //Clear EUSART Receive Interrupt Flag bit TXSTA2 = 0x24; //Synchronous mode:Selects 9-bit transmission, High speed BRGH=1, Transmit enabled RCSTA2 = 0x90; //Synchronous mode:Selects 9-bit reception, Continuous Receive Enable, //Serial port enabled(configures RX/DT and TX/CK pins as serial port pins) // SPBRG2 = BAUD9600; //11.0592MHz, BRGH=1, 9600bps SPBRG2 = 51; //8MHz, BRGH=1, 9600bps ODCON1 = 0; ODCON2 = 0; ODCON3 = 0; PIE1 = 0x20; //Peripheral interrupt disable PIE2 = 0; //Peripheral interrupt disable PIE3 = 0x20; //enable RC2IE/TX2IE/RTCCIE PIE4 = 0; //enable RC2IE/TX2IE/RTCCIE PIE5 = 0; //enable RC2IE/TX2IE/RTCCIE PIE6 = 0; //enable RC2IE/TX2IE/RTCCIE IPR1 = 0x20; //All peripheral interrupt /time interrupt low priority IPR2 = 0; //All peripheral interrupt /time interrupt low priority IPR3 = 0x20; //All peripheral interrupt /time interrupt low priority IPR4 = 0; //All peripheral interrupt /time interrupt low priority IPR5 = 0; //All peripheral interrupt /time interrupt low priority IPR6 = 0; //All peripheral interrupt /time interrupt low priority MAX485_EN2 = 0; } 中断中的数据接受处理 void interrupt my_isr(void){ static u8 rdata = 0; if(PIR3bits.RC2IF &&PIE3bits.RC2IE ) { rdata = RCREG2; if(Rx_en && RxCounter1 < USART1_R_LEN) { Usart1_rbuff[RxCounter1++] = RCREG2; if(RxCounter1>=USART1_R_LEN) { Rx_en = 0; Usart1_r_finish = 1; } } Comdelay = 2; //20ms????????????????? } if(PIR1bits.RC1IF &&PIE1bits.RC1IE) { rdata = RCREG; if(Rx_en0 && RxCounter < USART_R_LEN) { Usart_rbuff[RxCounter++] = RCREG; if(RxCounter>=USART_R_LEN) { Usart_r_finish = 1; //RxCounter = 0; //Rx_en0 = 0; } } Comdelay0 = 2; //20ms????????????????? } //下面这部分代码是以前别的功能忘了删除了,但是我觉得应该没有对串口假死有影响。 //下面这部分代码是以前别的功能忘了删除了,但是我觉得应该没有对串口假死有影响。 //下面这部分代码是以前别的功能忘了删除了,但是我觉得应该没有对串口假死有影响。 if(INTCONbits.INT0IF) { INTCONbits.INT0IF = 0; // if(WATER) { // Water_pulse = 0; if(dat_set_water.water_chicken <= 65534) dat_set_water.water_chicken+=1; } } } 主程序while1中的串口接受数据处理 //当发生帧错误或者溢出时,初始化串口 if(RCSTA2bits.OERR || RCSTA2bits.FERR) { RCSTA2bits.CREN = 0; config_uart2(); } if(RCSTA1bits.OERR || RCSTA1bits.FERR) { RCSTA1bits.CREN = 0; config_uart1(); } if(Usart1_r_finish) // { Rx_en = 0; //暂时拒绝接受新数据 Usart1_r_finish = 0; com_pro(); //处理数据 RxCounter1 = 0; for(i=0;i

    串口 TE interrupt inter ip

    694浏览量 3回复量 关注量
  • 是下位机的程序处理问题,还是上位机的问题

    我用官网的库例程编了个虚拟串口+HID,分别用F1、F3和F4的板子都实现了,但是发现一个问题,之前调试的时候也有注意到,但没在意: 1.连接后,成功驱动,PC端串口助手打开对应的串口号,和设备通讯无误。但是如果一旦设备出问题,比如进入了死循环,如果此时PC端的串口助手点击关闭串口,串口助手就会卡死,必须重启下位机或者拔掉USB。 2.串口助手打开对应的串口号,拔掉USB,然后再连上,无法和硬件串口一样能继续正常通信,中途串口助手不点击关闭串口。 3.串口助手关闭串口后,必须有一次释放串口的过程,比如重启下位机,插拔USB,这样串口助手才能再次打开原来的串口,这也和硬件串口不同 对于以上3点疑问,我想请教,是下位机的程序处理问题,还是上位机的问题?

    上位机 下位机 串口 串口助手 USB

    1111浏览量 32回复量 关注量
  • 有大神做过这个方面嘛?

    用的中颖的79F166A单片机做的电动自行车的面板,目前LCD显示数据通讯都已经完全正常了,但是之前一直用在线编程模式,其中TMS,TCK,TDI,TDO这几个端口和LCD的引脚共用,所以现在想通过串口烧写程序,有大神做过这个方面嘛?求指导

    LCD CD 串口 ck LCD显示

    581浏览量 15回复量 关注量
  • N76E003串口多字节接收

    各位大神新唐N76E003单片机串口0只能单字节接收,多字节接收失败!有哪位大神给指点一下,不胜感激

    串口 N76E003 单片机 新唐 单片机串口

    1441浏览量 10回复量 关注量
  • 异电源通讯

    请问一下,一个MCU是5V供电,另一个是1.2V供电,两个之间串口能直接连接吗?由于设计需要,所以用不同的电源供电。

    电源 通讯 供电 MCU 串口

    818浏览量 3回复量 关注量
12345下一页