PowerPC+FPGA调试扩展串口,中断问题,请多多指教 [问题点数:20分,结帖人wlgjvjsaxnf]

Bbs1
本版专家分:5
结帖率 83.87%
Bbs1
本版专家分:0
扩展串口芯片16550中断问题
请教各位:rn 我的<em>串口</em>芯片16550用了外部<em>中断</em>EINT3rn 在注册表中:我需要加rn "[b]SysIntr"=dword:3 [/b] <em>串口</em>4的<em>中断</em>为EINT3rn "MeMBase"=dword:0x20000000 <em>串口</em>4的IO空间首地址为0x20000000 rn "IoLen"=dword:8 <em>串口</em>4的IO空间长度为8个字节 rn "DeviceArrayIndex"=dword:4 <em>串口</em>4的索引,是4的由来 rn "Order"=dword:1 <em>串口</em>4驱动的加载顺序 rn "DeviceType"=dword:0 <em>串口</em>4的设备类型 rn "DevConfig"=hex: 10,00 .... <em>串口</em>4在与Modem设备通讯时的配置,如波特率、奇偶校检等 rn "FriendlyName"="COM4:" <em>串口</em>4在拨号程序中显示的名字 rn "Tsp"="Unimodem.dll" <em>串口</em>4被用于与Modem设备通讯的时候要加载的TSP(TAPIServiceprovider)DLL rn "Prefix"="COM" <em>串口</em>4的流接口的前缀 rn "Dll"="com16550.Dll" <em>串口</em>4的驱动程序DLLrnrn可是我在驱动中并没有找到读取注册表信息获得<em>中断</em>号的地方rnrn唯一一个跟<em>中断</em>相关的,并且从注册表读取的却是DeviceArrayIndex rn并且 把这个 DeviceArrayIndex号 跟事件捆绑,rnrn请问<em>串口</em>的<em>中断</em>是怎么触发的,怎么调用的 ,驱动程序怎么得到的? 注册表中的<em>中断</em>号传给谁了??
X86 CPLD扩展串口中断问题
我在AMD lx800的板子上做了CE,板载的2<em>串口</em>是可以收发的,板子通过ISA总线CPLD外扩了6个<em>串口</em>。使用了共享<em>中断</em>10,在XP下是这样的。直接添加新硬件,找到设备后配置了地址空间就可以使用。rn在CE下,因为采用共享<em>中断</em> 我在x86目录下的init.c中进行了如下配置rnrn[code=C/C++]rn // COM1 - 0x3F8-0x3FF, IRQ4rn // COM2 - 0x2F8-0x3FF, IRQ3rn // COM3 - 0x3E8-0x3EF, IRQ4rn // COM4 - 0x2E8-0x2EF, IRQ3rn //rn // IRQ3 - COM2 or COM4rn OALIntrStaticTranslate(SYSINTR_FIRMWARE + 3, 3);rnrn // IRQ4 - COM1 or COM3rn OALIntrStaticTranslate(SYSINTR_FIRMWARE + 4, 4);rnrn //add by me rn OALIntrStaticTranslate(SYSINTR_FIRMWARE + 19, 10);rn OALIntrStaticTranslate(SYSINTR_FIRMWARE + 20, 10);rn OALIntrStaticTranslate(SYSINTR_FIRMWARE + 21, 10);rn OALIntrStaticTranslate(SYSINTR_FIRMWARE + 22, 10);rn OALIntrStaticTranslate(SYSINTR_FIRMWARE + 23, 10);rn rn[/code]rnrn然后再注册表中进行了如下配置:rnrnrn[code=Assembly]rnIF BSP_SERIAL3rn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial3]rn "SysIntr"=dword:1Arn "IoBase"=dword:300rn "IoLen"=dword:8rn "DeviceArrayIndex"=dword:2rn "Prefix"="COM"rn "IClass"="CC5195AC-BA49-48a0-BE17-DF6D1B0173DD"rn "Dll"="Com16550.Dll"rn "Order"=dword:0rn; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO)rn "Irq"=dword:Arn "IsrDll"="isr16550.dll"rn "IsrHandler"="ISRHandler"rnrn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial3\Unimodem]rn "Tsp"="Unimodem.dll"rn "DeviceType"=dword:0rn "FriendlyName"=LOC_FRIENDLYNAME_SERIAL3rn "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00rnENDIF BSP_SERIAL3rnrn; COM4rnIF BSP_SERIAL4rn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial4]rn "SysIntr"=dword:23rn "IoBase"=dword:308rn "IoLen"=dword:8rn "DeviceArrayIndex"=dword:3rn "Prefix"="COM"rn "IClass"="CC5195AC-BA49-48a0-BE17-DF6D1B0173DD"rn "Dll"="Com16550.Dll"rn "Order"=dword:0rn; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO)rn "Irq"=dword:Arn "IsrDll"="isr16550.dll"rn "IsrHandler"="ISRHandler"rnrn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial4\Unimodem]rn "Tsp"="Unimodem.dll"rn "DeviceType"=dword:0rn "FriendlyName"=LOC_FRIENDLYNAME_SERIAL4rn "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00rnENDIF BSP_SERIAL4rnrnrnrnIF BSP_SERIAL5rn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial5]rn "SysIntr"=dword:24rn "IoBase"=dword:310rn "IoLen"=dword:8rn "DeviceArrayIndex"=dword:4rn "Prefix"="COM"rn "IClass"="CC5195AC-BA49-48a0-BE17-DF6D1B0173DD"rn "Dll"="Com16550.Dll"rn "Order"=dword:0rn; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO)rn "Irq"=dword:Arn "IsrDll"="isr16550.dll"rn "IsrHandler"="ISRHandler"rnrn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial5\Unimodem]rn "Tsp"="Unimodem.dll"rn "DeviceType"=dword:0rn ;"FriendlyName"=LOC_FRIENDLYNAME_SERIAL5rn "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00rnENDIF BSP_SERIAL5rnrnIF BSP_SERIAL6rn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial6]rn "SysIntr"=dword:25rn "IoBase"=dword:318rn "IoLen"=dword:8rn "DeviceArrayIndex"=dword:5rn "Prefix"="COM"rn "IClass"="CC5195AC-BA49-48a0-BE17-DF6D1B0173DD"rn "Dll"="Com16550.Dll"rn "Order"=dword:0rn; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO)rn "Irq"=dword:Arn "IsrDll"="isr16550.dll"rn "IsrHandler"="ISRHandler"rnrn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial6\Unimodem]rn "Tsp"="Unimodem.dll"rn "DeviceType"=dword:0rn ;"FriendlyName"=LOC_FRIENDLYNAME_SERIAL6rn "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00rnENDIF BSP_SERIAL6rnrnrnIF BSP_SERIAL7rn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial7]rn "SysIntr"=dword:26rn "IoBase"=dword:320rn "IoLen"=dword:8rn "DeviceArrayIndex"=dword:6rn "Prefix"="COM"rn "IClass"="CC5195AC-BA49-48a0-BE17-DF6D1B0173DD"rn "Dll"="Com16550.Dll"rn "Order"=dword:0rn; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO)rn "Irq"=dword:Arn "IsrDll"="isr16550.dll"rn "IsrHandler"="ISRHandler"rnrn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial7\Unimodem]rn "Tsp"="Unimodem.dll"rn "DeviceType"=dword:0rn ;"FriendlyName"=LOC_FRIENDLYNAME_SERIAL8rn "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00rnENDIF BSP_SERIAL7rnrnrnIF BSP_SERIAL8rn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial8]rn "SysIntr"=dword:27rn "IoBase"=dword:328rn "IoLen"=dword:8rn "DeviceArrayIndex"=dword:7rn "Prefix"="COM"rn "IClass"="CC5195AC-BA49-48a0-BE17-DF6D1B0173DD"rn "Dll"="Com16550.Dll"rn "Order"=dword:0rn; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO)rn "Irq"=dword:Arn "IsrDll"="isr16550.dll"rn "IsrHandler"="ISRHandler"rnrn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial8\Unimodem]rn "Tsp"="Unimodem.dll"rn "DeviceType"=dword:0rn ;"FriendlyName"=LOC_FRIENDLYNAME_SERIAL8rn "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00rnENDIF BSP_SERIAL8rnrn[/code]rnrn现在是8<em>串口</em>都可以creatfile成功。但是外扩的后5个<em>串口</em>只要一发数据就死机。rn看到有很多朋友说ISA<em>扩展</em>的不可以共享<em>中断</em>,但是我通过CPLD<em>扩展</em>的驱动在CPLD中都实现了,和系统的接口都是16550兼容的UART。 坛子里有做过的吗? 求指导
中断学习之外部中断 powerpc实现
PPC<em>中断</em>处理函数的入口地址 IVPR[32-47] | IVORn[48-59] | 0b'0000其中IPVR定义虚拟基址interrupt_base,描述如下: interrupt_base: //head_fsl_booke.S (c:\linux\linux-2.6.23\arch\<em>powerpc</em>\kernel) 26851 2007/10/10 /* Cri...
PowerPC中断系统简介(一)
1. PowerPC<em>中断</em>系统简介PowerPC处理器的<em>中断</em>系统由两部分组成,一是内核的<em>中断</em>及异常的处理;二是<em>中断</em>控制器。以P2020处理器为例,包括E500内核<em>中断</em>及异常处理系统和OpenPIC<em>中断</em>控制器。在E500内核中,包含两种可以暂时中止处理器运行当前指令的事件、<em>中断</em>和异常。其中,异常是由E500内核产生的,如出现非法指令,访问存储器时出现TLB Miss等情况;而<em>中断</em>...
request_irq 在linux-2.4.4 注册中断问题,基于PowerPC
我的处理器是 PowerPC,现在学习驱动的<em>中断</em>rn我想要把CPU的一个管脚 PC11 做为<em>中断</em>源 CPMVEC_PIO_PC11rn用 request_8xxirq 向linux申请一个<em>中断</em>,当我触发管脚的时候,没有任何反应。rn代码如:result = request_8xxirq([color=#FF0000]CPMVEC_PIO_PC11[/color], hello_tasklet, SA_INTERRUPT, "myinterrput", NULL);rn但是我申请 PC10 的时候,一直都有<em>中断</em>信号,也就是说,我申请到<em>中断</em>了 但不是我所指定的那个管脚rn代码如:result = request_8xxirq([color=#FF0000]CPMVEC_PIO_PC10[/color], hello_tasklet, SA_INTERRUPT, "myinterrput", NULL);rnrn当然 request_8xxirq 也是最终调用的 request_irq rnrn在linux-2.4.32中却可以申请到,也能触发rn在2.4.32中申请<em>中断</em>的时候,好像为<em>中断</em>好加了一个偏移地址,这样就可以了rn但是在2.4.4的内核中却不是rnrn那该怎么申请我所指定的那个管脚为<em>中断</em>呢,请大虾门,多多指教!!!!!
FPGA片上PowerPC系统设计
FPGA片上PowerPC系统设计,在FPGA上开发PowerPC系统的资料很少,倾情奉献
\串口通信\基于FPGA的多串口扩展实现
\<em>串口</em>通信\基于FPGA的多<em>串口</em><em>扩展</em>实现
求助:如何用FPGA扩展串口
之前做的板子是通过SP3739(一扩七<em>串口</em>芯片)将DSP的<em>串口</em>信号进行<em>扩展</em>。由于此芯片停产了,所以想换一种方式,目前的芯片多为一扩三、一扩五,无法满足要求。希望能够用FPGA或CPLD设计一个类似SP3739的<em>串口</em><em>扩展</em>。请各位指点一下,最好是能有例子,谢谢了!
FPGA实现localbus总线的uart串口扩展
用FPGA实现的localbus总线外设的<em>扩展</em>,自力更生学会的!
K60串口中断问题
哪位大侠用MDK写过K60的<em>中断</em>,什么<em>中断</em>都好,供小弟参考一下。rnrn在MDK的官方例程下没有<em>中断</em>的例子。rnrn下面是我写的<em>串口</em>的<em>中断</em>的程序:rnrn#include rn#include "Serial.h"rn#include "stdio.h"rnrnstatic int8_t data;rnstatic uint8_t done;rnrnint fputc (int ch, FILE *f) rnrn // Debug output to serial port.rn if (ch == '\n') rn SER_PutChar (0x0D);rn rn SER_PutChar (ch & 0xFF);rn return (ch);rnrn rnrnvoid UART3_RX_TX_IRQHandler(void)rnrn printf("\nGet into this IS!\n");rn if(UART3->S1 & UART_S1_RDRF_MASK)rn rn data = UART3->D;rn SER_PutChar(data);rn done = 1;rn uart_get();rn rnrnrnint32_t uart_get(void)rnrn if(done)rn rn done = 0;rn return(data);rn rn elsern return(-1);rnrnrnint main(void)rn rn SER_Init ();rn uart_rx_tx_ir_Enable();rn //uart_get();rn while(1)rn rnrnrn下面是<em>中断</em>使能函数:rnrnvoid uart_rx_tx_ir_Enable(void)rnrn UART3->C2 = UART_C2_RIE_MASK;rn NVIC_EnableIRQ (UART3_RX_TX_IRQn);rnrn rnrn我在<em>调试</em>的时候,<em>中断</em>函数是能够进去的,rnrn rnrn<em>问题</em>一:rnrn刚到printf函数就死了,如果我把printf("\nGet into this IS!\n");rn函数去掉,那么<em>调试</em>时,data 是能收到我发送的字符。rnrn<em>问题</em>二:rnrn我这个程序只能执行一次执行<em>中断</em>函数,<em>中断</em>完成之后,我发送数据给它,<em>中断</em>函数进不去了。rnrn请大侠帮忙解决一下,小弟不胜感激。rnrn
at91rm9200串口中断问题~
我的相关代码如下,运行后,PC向<em>串口</em>2发送数据(1个字节),可以在AXD中看到RHR收到了发送的数据,但是没有进<em>中断</em>,请教! rnrn////////////////////////////////////////初始化<em>串口</em>2 rnrnint My_serial_2_init ()rnrn /* make any port initializations specific to this port */rn *AT91C_PIOA_PDR = AT91C_PA23_TXD2 | AT91C_PA22_RXD2; /* PA 23 & 22 */rn *AT91C_PMC_PCER = 1 << AT91C_ID_US2; /* enable clock */rn My_serial_2_setbrg(115200);rnrn AT91C_BASE_US2->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX;//rest rx txrn AT91C_BASE_US2->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;//enable rx txrn /*us->US_MR =rn (AT91C_US_CLKS_CLOCK | AT91C_US_CHRL_8_BITS |rn AT91C_US_PAR_NONE | AT91C_US_NBSTOP_1_BIT);*/rn AT91C_BASE_US2->US_MR = 0x1008c0;rn /********************************rn 0 flterrn 0 --rn 000 max_iterationrn 00 --rn 0 dsnackrn 1 inackrn 0 overrn 0 clkorn 0 mode9rn 0 msbfrn 00 chmodern 00 nbstop AT91C_US_NBSTOP_1_BITrn 100 par AT91C_US_PAR_NONErn 0 syncrn 11 chrl AT91C_US_CHRL_8_BITSrn 00 usclks AT91C_US_CLKS_CLOCKrn 0000 modern 100000000100011000000 0x1008c0rn *********************************/rn AT91C_BASE_US2->US_IMR = ~0ul;//us_imr readonly!!!rn AT91C_BASE_US2->US_IER = 0x9fb;rn rn AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_US2, rn USART_INTERRUPT_LEVEL,rn AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE, rn Usart_c_irq_handlerrn ); rn AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_US2);rn rn rn rn return (0);rnrnrnvoid Usart_c_irq_handler(void)rnrn unsigned int status;rn //* get Usart status registerrn status = AT91C_BASE_US2->US_CSR;rn if ( status & AT91C_US_ENDRX)rn AT91F_DBGU_Printk("AT91C_US_ENDRX\n\r");rn // check if interrupt is present and available rn if ( (status & AT91C_US_ENDTX) & (AT91C_BASE_US2->US_IMR & AT91C_US_ENDTX) )rn rn AT91F_DBGU_Printk("AT91C_US_ENDTX\n\r");rn AT91F_US_DisableIt(AT91C_BASE_US2, AT91C_US_ENDTX );rn rn // check if interrupt is present and available rn if ( (status & AT91C_US_TXBUFE) & (AT91C_BASE_US2->US_IMR & AT91C_US_TXBUFE) )rn AT91F_DBGU_Printk("AT91C_US_TXBUFE\n\r");rn rn if ( status & AT91C_US_OVRE) rn AT91F_DBGU_Printk("AT91C_US_OVRE\n\r");rnrn //* Check errorrn if ( status & AT91C_US_PARE) rn AT91F_DBGU_Printk("AT91C_US_PARE\n\r");rnrn if ( status & AT91C_US_FRAME) rn AT91F_DBGU_Printk("AT91C_US_FRAME\n\r");rnrn if ( status & AT91C_US_TIMEOUT)rn AT91F_DBGU_Printk("AT91C_US_TIMEOUT\n\r");rn //* Reset the satus bitrn AT91C_BASE_US2->US_CR = AT91C_US_RSTSTA;rnrnrnint main()rnrn My_serial_2_init();rn AT91F_DBGU_Printk("usart2_init()\n\r"); rn while(1);rnrnrn
51串口中断问题
刚接触单片机不久,想做一个<em>串口</em>收发的实验,可是 怎么也收不到数据,各位谁帮忙看看这段程序那里有<em>问题</em>呢?rn#includernunsigned char rxbuf[8];rnunsigned char tx_count=0,rx_count=0,rx_temp;rnvoid initUart()rnrn SCON=0x50;rn TMOD=0x20;rn PCON=0x80;rn TH1=0xf3;rn TL1=0xf3;rn TR1=1;rn ES=1;rn EA=1;rnrnmain()rnrn initUart();rn while(1)rn rn if(rx_count==8)rn rn TI=1;rn rx_count=0;rn rn rn rnvoid serial() interrupt 4 //<em>串口</em><em>中断</em>rnrn if(TI)rn rn if(tx_count < 8)rn rn rn SBUF = rxbuf[tx_count];rn tx_count++;rn rn rn if(tx_count>=8)rn rn TI = 0;rn tx_count=0;rn rn rn if(RI)rn rnrn rx_temp=SBUF;rn if(rx_count < 8)rn rn rxbuf[rx_count]=rx_temp;rn rx_count++;rn rn RI=0;rn rn
串口中断问题
我在RTX下对<em>串口</em>的几个寄存器进行读写,设置过之后通过另外一台设备向PC机<em>串口</em>发数据,总是进不了<em>串口</em><em>中断</em>,读取IIR寄存器发现有时候是0xc4,这说明应该是有<em>中断</em>的啊,但是为什么进不了<em>中断</em>处理程序呢,是不是还要有其它什么设置,希望各位指点一下
wince串口中断问题
<em>问题</em>描述如下:rn跑的wince6.0系统在自己写的驱动中跑一个线程,然后建立<em>串口</em>通信。之后就是按照wince系统的流程进行;irq=IRQ_UART2,再调用API函数申请逻辑<em>中断</em>号,创建事件,再跟逻辑<em>中断</em>号绑定。在while()中waitforsignelObject(事件,INIFITE);但是<em>串口</em>2明明有了数据来了,而且<em>串口</em>2<em>中断</em>也配置好了,但是就是产生不了<em>中断</em>,;测试把<em>串口</em><em>中断</em>改成IRQ_UART3,这样从新烧进去事件就跑起来了,当然是给<em>串口</em>3发数据,产生<em>中断</em>。为什么2不行3行呢,<em>串口</em>配置检查了好几遍没有<em>问题</em>。请大侠给点指点,不知道是不是哪里还需要进行配置的,在wince系统中<em>串口</em>2跟<em>串口</em>3还有一些不一样的地方。急啊,请教高手。
CE6.0下串口中断问题
说明一下<em>问题</em> rn我所用的板子需要使用4个<em>串口</em>,我已按照BIOS中的IRQ和IOBASE修改好platform.reg,但是生产系统后,发现<em>串口</em>3只能发送数据,不能接受数据。rnCOM3的注册表值:rn"SysIntr" = dword:1B //IRQ 11rn"IOBase" = dword:03E8rn对此系统使用注册表工具查看,发现Sysintr为1B的<em>中断</em>被PCI-PCI Bridge设备1占用。rnPCI设备的注册表部分中的NoConfig=1,也就是说PCI-PCI Bridge的sysintr应该为BIOS配置的。rn我的<em>问题</em>rn1. 如果不改变BIOS的配置,如何使PCI-PCI Bridge的sysintr不占用1B?rn2. 在CE6.0下可以<em>串口</em>使用共享<em>中断</em>吗?如果可以如何配置?
wince6.0串口中断问题
在wince6.0中物理<em>中断</em>号(IRQ)是由硬件决定的由注册表写入,初始化过程中系统会为每个物理<em>中断</em>号分配一个系统<em>中断</em>号(Sysintr),与<em>串口</em>事件进行绑定的是系统<em>中断</em>号。事件发生以后,根据与其绑定的系统<em>中断</em>号来调用相应的<em>中断</em>处理函数。rn这个是我个人理解的,不知道对否?rn现在我用一个pci卡<em>扩展</em>出来了两个<em>串口</em>假设<em>串口</em>号分别为com3和com4,两个<em>串口</em>共用的同一个物理<em>中断</em>号,这样的话系统不就只会分配一个系统<em>中断</em>号了,rn在事件发生以后,事件只会根据与其绑定的系统<em>中断</em>号来进行<em>中断</em>处理,那系统如何判断是com3还是com4发生的事件呢?
关于串口中断问题
最近总在想个<em>问题</em>,就是<em>串口</em>在通讯过程中,<em>串口</em>突然断开了,该怎么检测呢?rn如果有握手协议的话,比较容易判断. 没有握手的话 也试过使用 GetCommModemStatus 来判断电平状态,也不准确。rn不知道有没有什么好的方法来实现,谢谢!
单片机串口中断问题
以前做单片机<em>串口</em>程序,都是在接收到上位机指令后,发送数据。现在遇到一个新<em>问题</em>:在单片机不断给液晶屏发送数据(数据时AD芯片采集到的实时数据)的前提下,点击液晶屏,液晶屏会给单片机发送一组指令,在收到指令后,停止发送。发送程序用的是查询法,接收程序用的是<em>中断</em>。但是点击液晶屏程序时,时灵时不灵,请教一下高手们,是不是发送的程序也要写在<em>中断</em>中?
串口中断函数问题
我通过VC编写的上位机程序,通过RS232<em>串口</em>通信接收由下位机A/D采集的数据,然后在上位机程序画出曲线。在<em>串口</em><em>调试</em>过程中,有的时候给下位机通电,打开上位机程序可以正常通信,但是有的时候就不成功,<em>串口</em><em>中断</em>函数不响应,这种情况大多出现在下位机断电-通电后在打开上位机程序的时候。请问是怎么回事?下面是我的<em>串口</em>处理函数:rnvoid ZDdlg::OnOnCommMscomm1() rnrn // TODO: Add your control notification handler code herern int nEvent,ecc;rn unsigned int result;rn VARIANT vResponse;rn unsigned char *str;rn CString h;rn nEvent = m_Mscom.GetCommEvent();rn if(nEvent==2) //收到大于RTHresshold个字符rn vResponse=m_Mscom.GetInput(); //readrn //对数据进行其他处理 rn str = (unsigned char*) vResponse.parray->pvData;rnrn if(str[0]==0xFF && str[5]==0xFF)//数据提取rn rn ecc=str[1]^str[2]^str[3];rn if(ecc==str[4])rn result=(0x00ff&str[2])<>6);rn rn result=255*result/1024;rn buf1[num1]=result;//保存数据rn draw(num1);//画点rn num1++;rn if(num1==480)rn rn num1=0;rn rn rnrn rn rnrnrn下面是我的<em>串口</em>初始化函数:rnvoid ZDdlg::OpenPort()rnrn if(m_Mscom.GetPortOpen())//关闭<em>串口</em>rn m_Mscom.SetPortOpen(FALSE);rn m_Mscom.SetCommPort(1); //选择COM1rn m_Mscom.SetInBufferSize(1024); //设置输入缓冲区的大小,Bytesrn m_Mscom.SetOutBufferSize(512); //设置输出缓冲区的大小,Bytesrnrn if(!m_Mscom.GetPortOpen()) //打开<em>串口</em> rn m_Mscom.SetPortOpen(TRUE);rn rnrn m_Mscom.SetInputMode(1); //设置输入方式为二进制方式rn m_Mscom.SetSettings("115200,n,8,1"); //设置波特率等参数rn m_Mscom.SetRThreshold(6); //为1表示有一个字符引发一个事件 确定收到的字符数   rn m_Mscom.SetInputLen(6);//设置一次读取输入缓冲区的字节个数rn m_Mscom.GetInput();//清缓冲区 rnrn
串口中断问题
我用<em>串口</em>接收数据来更新flash里面的内容。当我接收到一页的数据的写flash的时候,<em>串口</em>在接收到的数据就会丢失。我现在采取的方法是一次全部接收<em>串口</em>的数据。然后再进行写flash。但是如果数据量比较大的时候我就不可能一次接收所有的数据了。请问有什么好的办法能够解决这个<em>问题</em>?
nanopi-k2调试串口改普通串口以及扩展串口ttyS2
前段时间入手了一块友善出品的nanopi-k2开发板,在qt下识别出<em>串口</em>名为ttyS*,ttyS0是debug Uart,且误以为ttyS1是<em>扩展</em><em>串口</em>,苦苦折腾没有反应。后来才知道ttyS1被蓝牙占用,<em>扩展</em>的那一路没有配置出来。作为新手,甚是苦恼。由于项目紧,临时考虑了一种放法,就是debug uart改成普通<em>串口</em>使用,参考网上的方法重新编译内核,并没有取得成功。后来发现只需要干掉内核启动时的引导...
C8051F020的串口中断问题
我的程序现在遇到这样的<em>问题</em>,<em>串口</em><em>中断</em>时而响应,时而不响应,在<em>中断</em>子程序中加了一句temp++; ,得到的temp值大的可怕,说明按一次键,<em>串口</em>收到数据后,进入了N次<em>中断</em>,而按下键盘后,总共只发出3个字节的数据,根据每收到一个字节进入一次<em>串口</em><em>中断</em>,好像<em>问题</em>比较奇怪.我把代码贴出来,大家帮忙看看,谢谢了.rnrn主程序:rn#include // Register definition file.rn#include rnrnunsigned char TIME2H=0x6F; //20毫秒高字节rnunsigned char TIME2L=0xFF; //20毫秒低字节rnunsigned char TIME0H=0xB7; //10毫秒高字节rnunsigned char TIME0L=0xFE; //10毫秒低字节rnrnunsigned char databuf=0,temp=0;rnrn/*----------------------------------------------------------rn*The Main functionrn*-----------------------------------------------------------*/rnvoid main()rnrn InitialCPU();rn while(1)rn rn _nop_();rn rnrnrnrnrn/*------------------------------------------------------------rn*函数名称:InitialCPU()rn*功能描述:完成系统的基本配置:rn 锁定WatchDog;rn 切换到外部晶振11.0592MHZrn 配置交叉开关,使UART0,UART1,INT0配置到相应的位置rn 引脚的输入输出方式配置rn*形式参数: rn*返 回 值:void rn*修改记录: rn*---------------------------------------------------------------*/ rnvoid InitialCPU()rnrn unsigned char i;rnrnrn rn WDTCN=0xDE;rn WDTCN=0xAD;rn rn//---------启用外部晶振-------------------------rn OSCXCN = 0x67;//外部晶振为11.0592MHZ,不分频 rnrn for(i=255; i>0; i--) //等待至少1ms rn _nop_();rn while((OSCXCN & 0x80)==0) ; //晶振是否运行稳定 rnrn OSCICN =0x8C; //使能时钟丢失监测器;切换到外部振荡器,关闭内部振荡器rnrnrn/******配置交叉开关**************************/rn XBR0=0x07; //将UART0配置到P0^0(TX0),P0^1(RX0),SPI配置到P0^2-SCK,P0^3-MISO,P0^4-MOSI,P0^5-NSS,I2C配置到P0^6-SDA,P0^7-SCLrn XBR1=0x14; //将INT0配置到P1^2,INT1配置到P1^3rn XBR2=0x44; //交叉开关使能,将UART1配置到P1^0(TX1),P1^1(RX1)rnrn P0 |=0xE2; //p0.1为RX0,输入;p0.5为SPI NSS,输入;p0.6为SMBUS SDA,Open-Drain Input/Output;p0.7为SMBUS SCL,Open-Drain Input/Outputrn P1 |=0xCE; //p1.1为RX1,输入;P1.2为INT0,输入;P1.3为INT1,输入;P1.7为判断飞行时间,输入;P1.5动静开关,输入rn P2=0xff; //P2输入rn P1MDIN=0xff; //Input configuration for P1,为数字端口rnrn//****************************************************************************************rnrn//初始化定时器T0 T1 T2rn//----------------------------------------------------------------rn// Timer Configurationrn//----------------------------------------------------------------rn//TIME0,TIME1,TIEM2使用系统时钟的12分频 rn//<em>中断</em>响应时间为5-18个系统时钟周期,rn CKCON=0x00; // Clock Control Registerrn TH0=TIME0H; //Timer 0 High Bytern TL0=TIME0L; //Timer 0 Low Byte ; (FFFF-B7FE)*0.5425=10mSrn TH1=0xFA; //Timer 1 High Bytern TL1=0xFA; //Timer 1 Low Byte ; 波特率为9600rn TMOD=0x21; //Timer Mode Register ;T1模式2,T0模式1rn TCON=0x55; //Timer Control Register ;启动定时器T0,T1rn//INT0,INT1均为沿触发rnrn TH2=TIME2H;rn TL2=TIME2L; //(FFFF-27FC)*0.5425=30mSrn RCAP2H=TIME2H;rn RCAP2L=TIME2L;rn T2CON=0x00; rnrn T4CON=0x34;rn TH4=0xFF;rn TL4=0xDC;rn RCAP4H=0xFF;rn RCAP4L=0xDC;rnrn//****************************************************************************************rnrn//----------------------------------------------------------------rn// UART Configurationrn//----------------------------------------------------------------rn//UART0波特率9600,UART1波特率19200rn//UATR0方式3,只接收;UART1方式3,发送和接收rn SCON0=0xD0; //Serial Port 0 Control Registerrn SADEN0=0x00; //Serial 0 Slave Address Enablern SADDR0=0x00; //Serial 0 Slave Address Registerrn PCON=0x00; //Power Control Registerrnrn SCON1=0xD0;rn SADEN1=0x00; //Serial 1 Slave Address Enablern SADDR1=0x00; //Serial 1 Slave Address Registerrnrn//************************************************************************rnrn//----------------------------------------------------------------rn// Interrupt Configurationrn//----------------------------------------------------------------rn//允许T0,串行口0,INT0,INT1<em>中断</em>,此时先不允许T2<em>中断</em>rn//UART0,T0,INT0,INT1高优先级rn IE=0x97; //Interrupt Enablern IP=0xD7; //Interrupt Priorityrn EIE1=0x00; //Extended Interrupt Enable 1rn EIE2=0x00; //Extended Interrupt Enable 2rn EIP1=0x00; //Extended Interrupt Priority 1rn EIP2=0x00; //Extended Interrupt Priority 2rn/****************************************************************************************/rnrn/******设置SPI的基本参数**************/rn SPI0CFG =0x07; //SPI0帧长度为8位,第1个上升沿采样rn SPI0CN =0x03; //使能主方式,使能SPI0rn SPI0CKR=0x7F; //设定SPI0的时钟速率为SYSCLC/(2*(SPI0CKR+1))=345600HZrnrn/******设置SMbus的基本参数**************/rn SMB0CN=0x42; //SMBus Control Register 允许SMBUS,允许SCL高电平超时rn SMB0CR=0x26; //SMBus Clock Rate Register SCL时钟周期为10uSrnrn//************************************************************************rn/******ADC0电压基准取自VREFA引脚**************/rn REF0CN=0X03; //Reference Control Registerrnrn/******设置ADC的基本参数**************/rn//AIN0,AIN1,AIN2,AIN3,AIN4为单端输入;ADC0 SAR转换时钟约为2.0MHzrn//内部放大器增益为1;数据字右对齐rn//低功耗跟踪方式,向ADBUSY写1时启动跟踪rn AMX0CF=0x00; //AMUX Configuration Registerrn AMX0SL=0x00; //AMUX Channel Select Registerrn ADC0CF=0x50; //ADC0 Configuraion Registerrn ADC0CN=0xc0; //ADC Control Registerrn rnrnrn<em>中断</em>程序:rnrn#include // Register definition file.rn#include rnrnextern unsigned char databuf,temp;rnrn/*------------------------------------------------------------rn*<em>中断</em>名称:<em>串口</em><em>中断</em>rn*功能描述:工作在方式3,为9600Baud;实现对帧头数据的检测,检测正确后,将键值存到databuf中rn*修改记录: rn*---------------------------------------------------------------*/ rnvoid Comm(void)interrupt 4rnrn static bit HeaderFlag=0,DataFlag=0;rn static unsigned char KeyValue;rnrn EA=0;rn if (_testbit_(RI0))rn rn if ((HeaderFlag==0)&&(SBUF0=0xaa)) //说明是数据头rn rn HeaderFlag=1;rn KeyValue++;rn rn else //说明不是数据头rn rn if (DataFlag==0) //说明是数据rn rn KeyValue=SBUF0;rn DataFlag=1;rn temp++;rn rn rn elsern rn if (SBUF0=0 ^ 0xaa ^ KeyValue)rn rn databuf=KeyValue;rn rn DataFlag=0;rn HeaderFlag=0;rn temp++;rn rn rn rnrn EA=1;rn temp++;rnrn
CE串口 中断问题
环境:x86平台, CE6.0rn<em>问题</em>:读写<em>串口</em>的时候,可以把数据从平台发出,并且PC机能收到平台发出的数据。但是当从PC往平台发数据时,却收不到数据。打印了下PIC<em>中断</em>号,发现捕获不到<em>串口</em>的<em>中断</em>号,但是打印<em>串口</em>的寄存器信息IIR已经表明有<em>中断</em>产生,想问下,会有什么原因产生这个现象rn
IAR串口Simulator仿真中断调试实现
IAR<em>串口</em>Simulator仿真<em>中断</em>的<em>调试</em>实现
STM8S和STM8L调试串口中断的注意点
STM8L<em>串口</em><em>中断</em>注意点 在<em>调试</em>PM2.5传感器GP2Y1051的时候,发现在仿真的时候开始能够进行数据的接受,但是如果暂停之后就不能接受数据,其实只是接收了一次完整的数据。 解决方法 if(USART_GetITStatus(USART1, USART_IT_RXNE)) { RecevieData
FPGA的rs232串口调试程序,调试通过
FPGA的rs232<em>串口</em><em>调试</em>程序,<em>调试</em>通过
基于串口的PowerPC bootloader的开发
_基于<em>串口</em>的PowerPC bootloader的开发,论文可以看一下。
串口中断
我用单片机的<em>串口</em>接收数据rn接收程序是<em>中断</em>方式rn波特率、<em>串口</em><em>中断</em>、总<em>中断</em>都设置正确了rn但运行的时候就是进入不了<em>中断</em>rn不知道什么原因rn请大侠们指导下
powerpc linux usb转串口
在WINDOWS XP下USB转<em>串口</em>通用线插上USB口可以映射出<em>串口</em>出来,但在嵌入式下却映射不出来,请问是不是嵌入式系统内核编译<em>问题</em>,是不是嵌入式下内核不支持USB转<em>串口</em>的驱动,要改动相应的usbserial文件吗,请大家提点意见想法,不甚感激
扩展串口驱动问题
arm9302的板子,要弄一个<em>扩展</em>的<em>串口</em>,不知道写这个驱动要做些什么,谁能给点说明,急救啊!
串口扩展问题
51的单片机只有一个<em>串口</em>,现在我要用这<em>串口</em>控制lcd显示器,键盘,一个通信口,过程是这样的:键盘随机键入字母,要求单片机把它送显示器和通信口;通信口接受的数据要送到显示器。我的<em>问题</em>就是如何进行控制这么多的外设,且如何处理通行口和键盘的随时输入,既如让它们不冲突且不丢失数据?rn请问我要怎样进行硬件和软件的设计以解决这些<em>问题</em>?rn请您指导!不胜感激!
串口扩展问题
推荐几个,一扩五的,可不可以啊?
扩展串口芯片驱动的问题
PXA270+WinCE6.0 通过总线<em>扩展</em><em>串口</em> 芯片 ST16c554 扩出了4个<em>串口</em>rn对<em>串口</em>了解不够,请问一下,写<em>扩展</em><em>串口</em>的驱动需要注意哪些?rn对比芯片资料发现里面寄存器的配置与16550差别不大,是不是可以继承16550的pdd层?rnmdd层需要修改吗,还是要单独取出来?
关于PC机串口问题~请多多指教~
请问PC机的<em>串口</em>的结构是什么样的,里面有8251吗?要是有的话,8251的数据口和控制口地址怎么得到??谢谢
外部中断 串口中断 定时中断
一个单片机最基础的所有外部<em>中断</em> 包括定时<em>中断</em>,<em>串口</em><em>中断</em>,外部<em>中断</em>
wince中串口中断问题
请高手解释如何在evc编程时,采用<em>中断</em>的方式监控<em>串口</em>?
AT89C51AC2的串口初始化和中断问题
以下是我写的一个用timer2做<em>串口</em>波特率触发器的程序。rn与PC通讯,接收回来的数据和发送的不一样,好象根本没执行<em>中断</em>发送部分。rnstruct SEND_STRUCTrn unsigned char data_idx;rn unsigned char data_buf[10];rn SEND;rnstruct RECEIVE_STRUCTrn unsigned char data_idx;rn unsigned char data_buf[10];rn RECEIVE;rn/************************************************************/rnvoid serial_init(void)rnrn PCON &= 7F;//no double baud rate, SMOD1=0 of PCONrn SCON = 0x50;//8-bit UART, mode 1rn T2CON &= 0xF0;//EXEN2=0, TR2=0, C/T2=0; CP/RL2=0rn T2CON |= 0x30;//RCLK=1, TCKL=1rn TH2 = 0xFF;rn TL2 = 0xDC;//[init value]=2^n-(Fosc/(baud*16*2)), Fosc=11.0592MHz, baud=9600rn RCAP2H = 0xFF;rn RCAP2L = 0xDC;//reload baud 9600rn REN = 1;//enable receivern TX_EN = 1;//disenable sendrnrn TR2 = 1;/startup T2rn ES = 1;//serial isr enablernrn/************************************************************/rnvoid uart_isr(void) interrupt 4rnrn unsigned char rec_data;rnrn if(_testbit_(TI))rn rn if(SEND.data_index9)rn rn TI = 0;rn SEND.data_idx = 0;rn TX_EN = 1;//disenable sendrn REN = 1;//enable receivern rn //send endrn else if(_testbit_(RI))rn rn rec_data = SBUF;//read serial data bufrnrn if(RECEIVE.data_idx==0)rn rn if(rec_data==x0FF)//communication with PC, the first data is 0xFFrn rn RECEIVE.data_buf[0] = rec_data;rn RECEIVE.data_buf[9] ^= rec_data;//checksum=data_buf[0]^data_buf[1]^...^data_buf[8] rn //&0x7Frn RECEIVE.data_idx = 1;rn rn elsern rn RECEIVE.data_idx = 0;rn rn rn else if(RECEIVE.data_idx)rn rn if(RECEIVE.data_idx<9)//receive 1~8 data and checksum=data_buf[0]^data_buf[1]^...rn //^data_buf[8]&0x7Frn rn RECEIVE.data_buf[RECEIVE.data_idx] = rec_data;rn RECEIVE.data_buf[9] ^= rec_data;rn ++RECEIVE.data_idx;rn rn else if((RECEIVE.data_idx==9) && ((RECEIVE.data_buf[9])&0x7F)==rec_data))rn rn REN = 0;//disenable receivern TX_EN = 0;//enable sendrn RI = 0;rn rn elsern rn RECEIVE.data_idx = 0;rn RI = 0;rn rn rn //receive endrn
vxworks 下奇怪的串口中断问题
现在<em>调试</em>vxWorks的bootrom遇到一个<em>问题</em>,在程序进入usrRoot之前敲入几个字符(一定要敲到某个字符没有回显),打印停止在初始化<em>串口</em>和系统<em>中断</em>函数之前,再随意敲入一个字符,打印可以继续下去,一直不理解为什么要敲到一个不没有显示的字符才会有下面的现象,而且敲完字符之后进入usrRoot中的前几条打印都可以正常显示,执行到初始化<em>串口</em>和<em>中断</em>函数那里才中止,不知道哪里出<em>问题</em>了,哪位兄弟可以帮忙答疑解惑,不胜感激!
中断串口发送数据问题
大家好!我是单片机的初学者,现在遇到一个<em>问题</em>无法解决,希望能得到大家的帮忙,谢谢!rn如题:rn1、我做了一个边沿触发方式的外部<em>中断</em>0,当按键按下不放时按要求<em>串口</em>发送数据.rn2、在P2.3口做了个独立式按键S1,当按下时向<em>串口</em>发送相关字符,松开按键时也发送相关字符。rn3、出现<em>问题</em>:启动程序后按下外<em>中断</em>0无<em>串口</em>发送,不知道哪里有<em>问题</em>(好像一直运行While循环中(2)以下的代码中),烦请大家帮我看看代码,rn看看是程序哪里有<em>问题</em>,还是思路有<em>问题</em>?谢谢!rnrnrn#include rn//#include rn//#include rn#include rn#define uint unsigned intrntypedef unsigned int uint2;rnsbit p0_0 =P0^0;rnsbit p2_0 =P2^0;rnsbit p2_1 =P2^1;rnsbit p3_2 =P3^2;rnbit flag;rnbit flagStep;rnbit temp;rnunsigned char start;rnunsigned char stop;rnvoid Send(unsigned char info);rnvoid int_0();rnvoid init(void);rnvoid delay(uint k);rnrnvoid delay(uint k)rnrnuint data i,j; rn for(i=0;i
慢慢欣赏linux powerpc中断绑核
如何查看当前<em>中断</em>绑核情况 static int __init proc_interrupts_init(void)     proc_create(&quot;interrupts&quot;, 0, NULL, &amp;amp;proc_interrupts_operations);                                                 /\                  ...
PowerPC基于vxWorks的中断初始化分析
1. 本文简介       本文主要介绍P2020芯片中vxWorks<em>中断</em>初始化过程(部分讲解是以linux为例)。P2020属于PPC85XX系列,内核为e500v2,它是PowerPC体系结构中主要应用于通信领域的片子,PowerPC体系结构规范发布于1993年,它是一个64位规范(也包含32位子集)。但几乎所有常规的PowerPC的芯片都是32位的,除了部分新型高端芯片(eg:IBM RS...
6.2 PowerPC处理器如何处理MSI中断
PowerPC处理器使用OpenPIC<em>中断</em>控制器或者MPIC<em>中断</em>控制器,处理外部<em>中断</em>请求。其中MPIC<em>中断</em>控制器基于OpenPIC<em>中断</em>控制器,但是作出了许多增强,目前Freescale新推出的PowerPC处理器,其<em>中断</em>控制器多与MPIC兼容。 值得注意的是,PowerPC处理器和x86处理器处理MSI报文的方式有较大的不同。其中x86处理器使用的机制比PowerPC处理器更为合理,但是Powe
调试串口问题
rn请问怎样可以把<em>调试</em><em>串口</em>UART0修改成普通的<em>串口</em>(即没有<em>调试</em>信息输出),需要修改哪些文件里的信息啊?rn是不是还要修改注册表啊?我在文件WINCE500中搜索了下platform.reg,总共有以下三处路径有platform.reg,rn我分别把它们关系到<em>串口</em>的地方的列了出来,不知道要修改什么?请各位帮帮忙吧rnrnrn1.WINCE500\PLATFORM\MAINSTONEII\FILES\platform.regrnrn; -----------------------------------------------------------------------------rn; @CESYSGEN IF CE_MODULES_SERIALrnIF BSP_NOSERIAL !rn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial]rn "Irq"=dword:16 ; 22 IRQ_FFUARTrn "SysIntr"=dword:1d ; 29 SYSINTR_FFUARTrn "MemBase"=dword:40100000 ; FFUART Register rn "MemLen"=dword:40rn "DeviceArrayIndex"=dword:80 ; FFUART objectrn "Prefix"="COM"rn "IClass"="CC5195AC-BA49-48a0-BE17-DF6D1B0173DD"rn "Dll"="ms2_serial.dll"rn "Order"=dword:0rnrn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial\Unimodem]rn "Tsp"="Unimodem.dll"rn "DeviceType"=dword:0rn "FriendlyName"="Serial Cable on COM1:"rn "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00rnrnENDIF BSP_NOSERIAL !rn; @CESYSGEN ENDIF CE_MODULES_SERIALrn; -----------------------------------------------------------------------------rnrnrnrn2.WINCE500\PLATFORM\SMDK2410\FILES\platform.regrnrn;=============== UART0 (physical COM1 connector P1) (Serial) ===============rnIF BSP_NOSERIAL !rn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SER2410]rn "DeviceArrayIndex"=dword:0rn "Irq"=dword:03rn "IoBase"=dword:50000000rn "IoLen"=dword:2Crn "Prefix"="COM"rn "Dll"="SER2410.Dll"rn "Order"=dword:0rn "Priority"=dword:0rn "Port"="COM1:"rn "DeviceType"=dword:0rn "FriendlyName"="Serial Cable on COM1:"rn "Tsp"="Unimodem.dll"rn "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00rnENDIF BSP_NOSERIAL !rnrnrnrn3.WINCE500\PLATFORM\SMDK2410\CESYSGEN\files\platform.regrnrn;=============== UART0 (physical COM1 connector P1) (Serial) ===============rnIF BSP_NOSERIAL !rn[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SER2410]rn "DeviceArrayIndex"=dword:0rn "Irq"=dword:03rn "IoBase"=dword:50000000rn "IoLen"=dword:2Crn "Prefix"="COM"rn "Dll"="SER2410.Dll"rn "Order"=dword:0rn "Priority"=dword:0rn "Port"="COM1:"rn "DeviceType"=dword:0rn "FriendlyName"="Serial Cable on COM1:"rn "Tsp"="Unimodem.dll"rn "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00rnENDIF BSP_NOSERIAL !rnrn
调试串口调试信息的问题
<em>串口</em>1我作为<em>调试</em><em>串口</em>,并且没有加载普通<em>串口</em>的驱动,当内核<em>调试</em>信息输出的时候同时应用程序的TRACE语句也在<em>调试</em><em>串口</em>输出了,想不明白,帮看看。
stm8s003中串口中断问题
最近在写了一段<em>串口</em>的<em>调试</em>代码,但是遇见一些无语的<em>问题</em>。具体的就是一进入<em>调试</em>界面就UART1的TC位就被置1,如图所示。因为想用<em>串口</em>发送完成,后触发<em>中断</em>,结果就是一直处于<em>中断</em>中,查看芯片资料,发现要先读UART_SR位,再写UART_DR位,才能清零,结果发现,这简直就是扯蛋~你会发现读取UART_SR后再写入UART_DR位就会发送一个字节的数据,完成后,又会导致TC位置1,这就是个死循环!所以感
关于串口中断接收数据的问题???
你好!rnrn我现在需要通过PC的RS232口接收由外部设备采集来的数据,由于接收数据只是该系统的一个模块,为了系统效率该模块只能做成<em>中断</em>方式接收。请问如何编程实现<em>中断</em>接收数据,是<em>中断</em>方式接收!!! 急。!!!!!!!!!!rnrn我的联系方式:pan-guo@163.net 或 panguo@yeah.netrn
串口中断,再连接问题
Windows7 visual studio 2010 MFCrn做了下面的代码,想实现:在<em>串口</em>通信的时候,如果出现接口脱落等断开现象后,有3次每隔2秒钟一次的再连接再送信的机会,只要在这个期间把接口再插上,就能实现再连接上,而正常通信。rnif(times!=0&&CSerial::CheckBuffer.GetLength()==0)Sleep(2000);Open();rn觉得连接断开后,需要在Open打开<em>串口</em>,就加了这条代码。但是不再连接不成功。rn请教正确的<em>串口</em>再连接方法。rn[code=C/C++]rn Open();rn int times = 0;rn dorn if(times==3)rn rn if(CSerial::CheckBuffer.GetLength()==0)rn Static5->SetWindowText(_T("接收异常!")); rn else Static5->SetWindowText(_T("接收异常!")); rnrn return;rn rnrn if(times!=0&&CSerial::CheckBuffer.GetLength()==0)rn Sleep(2000);Open();rn CSerial::CheckBuffer.Empty();rn normal.WriteCommByte(HeadData,10);rn normal.ReadDataWaiting();rn normal.ReadData();rn times++;rnrn while(CSerial::CheckBuffer.GetLength()==0||CSerial::CheckBuffer[3]!='0');rn[/code]
关于linux的串口中断问题???
请问一下linux的<em>串口</em><em>中断</em>是怎么实现的,源代码在哪个地方啊?
串口本机调试问题...
刚才看到帖子说<em>串口</em>本机<em>调试</em>只要把COM1和COM2连接就行了。rn这样的话,是不是要分别写COM1和COM2发送接受数据的程序呢?rn:)rn正好因为工作需要写<em>串口</em>通信的程序,所以来这里看了看,有rn很大帮助。不过我没学MFC,只用SDK编,比较头疼啊~rn现在只写了个COM1发送和接受数据的DEMO,但是想<em>调试</em><em>调试</em>却rn只有一台机子,因此问问这个<em>问题</em>。rn希望大家帮帮忙~!
关于超级中断调试问题
刚买了一款西门子手机A65,又买了一根数据线,是USB接口的,想用超级超级终端进行AT命令测试,但是进入超级终端后就是输入不了字母AT,不知道怎么会事,小弟水平不行,请各位大虾帮帮忙啊,多谢了
扩展磁盘中断Int13H
大家好,我想在DOS下获得硬盘的参数,但老版本的Int 13H不支持8.4G以上的硬盘,rn请问那位知道<em>扩展</em>Int13H的定义,或者那本书上有介绍。谢谢!rn
串口扩展(基于wk2166的串口扩展芯片spi转串口
本驱动程序基于wk2166<em>串口</em><em>扩展</em>芯片,实现了spi转<em>串口</em>的linux驱动程序的设计。本驱动源代码在为开微电子的网站也能找到源码。。
基于PowerPC的数模转换输出及脉宽调制接口扩展
基于PowerPC的数模转换输出及脉宽调制接口<em>扩展</em>
arm fpga 扩展 uart
wince 操作系统, arm9 + FPGA 来<em>扩展</em>多<em>串口</em>系统,请问wince 驱动如何写?
串口扩展芯片16c554D的问题
在做16c554D<em>串口</em><em>扩展</em>的时候,发现一个奇怪的<em>问题</em>,就是每次读取LSR寄存器的值的时候都是0,而其他寄存器是正常的,这样虽然能够收发数据,但是由于不能判断LSR状态所以收发数据会不稳定,我有些怀疑是不是总线时序<em>问题</em>,但是对其他寄存器的操作是没有<em>问题</em>的,请大家指点一下!
2440下16C554串口扩展问题
平台 2440rn系统 wince 5.0rn芯片 TL16C554arn rn利用微软的16550的代码架构驱动16C554,通过修改pdd层,配置相关的注册表项,目前系统已经可以加载4个<em>串口</em>了,利用<em>调试</em>软件可以打开,关闭。由于<em>扩展</em>的4个<em>串口</em>目前不对外使用,为内部提供给GPRS、GPS使用,因此进行发送测试是通过观察示波器结合打印<em>调试</em>信息完成的,观察到的情况是,发送1个字节 AA 示波器显示是正确的,但如果发送多个字节(长度超过FIFO 深度16)则每次只能发送FIFO 深度值,即最多16个。感觉像是<em>中断</em>线程没有执行。rn后对线程部分的<em>调试</em>信息进行分析,似乎线程应该执行,只是不符合再次触发<em>中断</em>的条件,下面是我在发送数据是打印的<em>调试</em>信息 rnrnLEO: CPdd16550 XmitInterruptHandler dwDataAvaiable C8 rnLEO: CPdd16550 GetLineStatus bData FF rnLEO: CPdd16550 SERIAL_LSR_OE failed 2 rnLEO: CPdd16550 SERIAL_LSR_PE failed 4 rnLEO: CPdd16550 SERIAL_LSR_FE failed 8 rnLEO: CPdd16550 GetWriteableSize dwWriteSize 10 rnLEO: CPdd16550 XmitInterruptHandler dwWriteSize 10 rnCPdd16550::XmitInterruptHandler! Write 16 byte to FIFO rnLEO: CPdd16550 XmitInterruptHandler pBuffLen 10 rnCPdd16550::ThreadRun IIR=8 rnCPdd16550::ThreadRun IIR=16 rnLEO: CPdd16550 GetLineStatus bData 0 rnCPdd16550::NotifyPDDInterrupt interrupts=1 rnCPdd16550::ThreadRun IIR=18 rnCPdd16550::NotifyPDDInterrupt interrupts=0 rnCPdd16550::ThreadRun IIR=0 rnCPdd16550::NotifyPDDInterrupt interrupts=8 rnCPdd16550::ThreadRun IIR=18 rnCPdd16550::NotifyPDDInterrupt interrupts=0 rnCPdd16550::ThreadRun IIR=18 rnCPdd16550::NotifyPDDInterrupt interrupts=0 rnCPdd16550::ThreadRun IIR=18 rnCPdd16550::NotifyPDDInterrupt interrupts=0 rnCPdd16550::ThreadRun IIR=18  rnCPdd16550::NotifyPDDInterrupt interrupts=0 rnCPdd16550::ThreadRun IIR=10 rnCPdd16550::NotifyPDDInterrupt interrupts=8 rnCPdd16550::ThreadRun IIR=18 rnCPdd16550::NotifyPDDInterrupt interrupts=0 rnCPdd16550::ThreadRun IIR=18 rnCPdd16550::NotifyPDDInterrupt interrupts=0 rnCPdd16550::ThreadRun IIR=18 rnCPdd16550::NotifyPDDInterrupt interrupts=0 rnCPdd16550::ThreadRun IIR=18 rnCPdd16550::NotifyPDDInterrupt interrupts=0 rnCPdd16550::ThreadRun IIR=18 rnCPdd16550::NotifyPDDInterrupt interrupts=0 rnCPdd16550::ThreadRun IIR=d0 rnCPdd16550::NotifyPDDInterrupt interrupts=8 rnCPdd16550::InterruptDone m_dwSysIntr=15 rnLEO: CPdd16554SerialA init, m_pIOPregs->GPFCON 55AA rnLEO: CPdd16554SerialA init, m_pIOPregs->GPGCON 580FFBA rnLEO: CPdd16554SerialA init, m_pIOPregs->EXTINT0 22222222 rnLEO: CPdd16554SerialA init, m_pIOPregs->EXTINT1 22222242 rnLEO: CPdd16554SerialA init, m_pIOPregs->EXTINT2 22222222 rnLEO: CPdd16554SerialA init, m_pIOPregs->EINTMASK FFFDF0 rn rn我一直感觉是我读到的16C554寄存器的值不对,可能是地址不对,或者是别的什么原因。 rn在进行寄存器初始化的时候,执行了rnrnCReg16550::CReg16550(PBYTE pRegAddr, DWORD dwStride) rn: m_pReg (pRegAddr) rn, m_dwStride(dwStride) rn rn m_pData = pRegAddr + (dwStride * RECEIVE_BUFFER_REGISTER); rn m_pIER = pRegAddr + (dwStride * INTERRUPT_ENABLE_REGISTER); rn m_pIIR_FCR=pRegAddr + (dwStride * INTERRUPT_IDENT_REGISTER); rn m_pLCR = pRegAddr + (dwStride * LINE_CONTROL_REGISTER); rn m_pMCR = pRegAddr + (dwStride * MODEM_CONTROL_REGISTER); rn m_pLSR = pRegAddr + (dwStride * LINE_STATUS_REGISTER); rn m_pMSR = pRegAddr + (dwStride * MODEM_STATUS_REGISTER); rn m_pSRC = pRegAddr + (dwStride * SCRATCH_REGISTER); rn m_FCR = 0; rn m_fIsBackedUp = FALSE; rnrn这里的dwstride是默认的值1,是不是这个地方的<em>问题</em>? rnrn我的片选是nGCS1,4个<em>串口</em>的对应地址是 0x08080000, 0x08090000, 0x080A0000, 0x080B0000rn<em>中断</em>是 EINT3, EINT8,EINT17,EINT18rnrn另外,我想知道怎么样能知道我当前配置的物理地址经过mmu是正确的。rn我找不原因了,已经好几天了,快崩溃了
串口调试
带crc计算急协议解析,可自动识别当前加载的<em>串口</em>
串口调试
/******************** (C) COPYRIGHT 2007 STMicroelectronics ******************** * File Name : stm32f10x_usart.h * Author : MCD Application Team * Date First Issued : 09/29/2006 * Description : This file contains all the functions prototypes for the * USART firmware library.
调试串口
记一次在开发中进行<em>串口</em>通信<em>调试</em>的过程在写<em>串口</em><em>调试</em>之前先推荐个在电脑上虚拟<em>串口</em>的软件:VSPD下载地址:点击打开链接VSPD一次 虚拟2个<em>串口</em>,一个读,一个发点击添加后打开设备管理器会发现新增了两个<em>串口</em><em>串口</em><em>调试</em>工具,我用的是雪莉蓝<em>串口</em><em>调试</em>工具下载地址:点击打开链接首先打开窗口<em>调试</em>工具 将COM口,波特率等调好然后就可以进行<em>串口</em>通信了示例图如下:...
串口精灵调试用于调试串口
是一用VB制作的<em>串口</em><em>调试</em>软件,可以试试,感觉还很不错
MINI2440串口中断程序
mini2440<em>串口</em><em>中断</em>程序,利用<em>串口</em>发从电脑上发送数据给开发板。
定时器和串口中断
有<em>串口</em><em>中断</em>,定时器<em>中断</em>,红外遥控,AD采集,DAC输出,IIC读写,看门狗,LCD驱动显示,资源分这么多就能看出资料是多么珍贵,不信你下载看看就知道
STM8S105 串口中断发送
STM8S105<em>串口</em><em>中断</em>发送 ,<em>串口</em><em>中断</em>发送数据。STM8单片机以<em>中断</em>方式发送数据。在发送过程中,不阻塞CPU的运行。
stm32串口接收中断
stm32<em>串口</em>接收<em>中断</em> 很好使用的 可以接收一连串的字符 比例程好用
串口中断代码分析
<em>串口</em><em>中断</em>代码分析,包括<em>中断</em>标志寄存器、<em>中断</em>向量控制器等如何配置
51单片机串口中断
51单片机<em>串口</em><em>中断</em>
串口完成中断+DMA.rar
1、STM32f103单片机<em>串口</em>完成<em>中断</em>+DMA 接收采用<em>串口</em>完成<em>中断</em>触发DMA接收,发送采用DMA发送完成<em>中断</em> 切换485使能接口。 115200bps 下20个字节以内的相互通讯 响应周期为5ms'
tms570ls3137串口中断程序
tms570ls3137<em>串口</em><em>中断</em>程序,可参考。全手码,内含整个工程,包括halcogen程序
中断-解析串口节点
DTS文件 在vexpress-v2p-ca9.dts中smb节点: 303 smb { 304 compatible = "simple-bus"; ...
STM32串口之空闲中断
背景 在做Nbiot的一个路灯项目,NBiot模块一般都是<em>串口</em>接口,使用AT指令集,对接中国移动onenet平台。先用<em>串口</em>助手去测试,流程测试OK之后需要在MCU上重新写一遍。一开始用的STC15系列的MCU,然后跟平台之间对接协议很多,代码量较大,所以换到了STM32F1系列的MCU。在STC15MCU上面通过<em>串口</em>接收数据只能老老实实用接收<em>中断</em>来做,每接收一个字节都需要判断帧头帧尾,一帧结束再处...
pc的串口中断
最近搞单片机和pc通信 想问pc机的<em>串口</em>如果有接受<em>中断</em> 用c 在dos下怎么编呢?rn比如说在keil中有rnvoid serial(void) interrupt 4rn这样有<em>中断</em>就可以进入<em>中断</em>服务程序rnrn但是用c 在tubor c下如何实现其进入<em>中断</em>服务程序呢?rnrn不啬赐教!
at91rm9200 中断 串口例程
利益usart1,<em>串口</em>自发自收,进入<em>中断</em>,适合arm初学者
ARM9 串口中断代码
ARM9 <em>串口</em><em>中断</em>代码 <em>中断</em>接收 西南交通大学
串口FIFO中断
CTI即字符接收超时<em>中断</em>,当有不足触发点值规定的字符串读入时,将引起<em>中断</em>,其与<em>串口</em>的RDA<em>中断</em>具有相同的优先级,并会同时被使能。
51单片机 串口 中断
想请问大神rn51单片机<em>串口</em>在什么情况下会进入<em>串口</em><em>中断</em>服务函数?rn是在TI=1的时候?还是在RI=1的时候?还是2中情况下都会响应<em>中断</em>?rn小弟不是很清楚,请大神指点,谢谢了先
串口中断通讯
#include #define uchar unsigned char #define uint unsigned int //uchar trdata[]={'B','i','g','B','i','g',0x0d,0x0a,0x00}; uchar code trdata[]={'R','I','C','H','M','C','U',0x0d,0x0a,0x00}; sbit K1=P3
ESP8266-FreeRTOS-串口中断(一)
 首先在乐鑫官方的参考文档里面只有简单的几句话: 官方参考文档里有关<em>串口</em><em>中断</em>的描述  ESP8266_RTOS_SDK 默认使⽤ UART0 打印<em>调试</em>信息,默认波特率为 74880。用户可以在 user_init 中⾃定义初始化 UART,参考 uart_init_new 实现。UART 驱动示例: \ESP8266_RTOS_SDK\driver_lib\driver\uart.c  以初...
2440 裸机串口中断
我写的2440<em>串口</em><em>中断</em>程序,<em>中断</em>接收<em>串口</em>穿来的数据。 我用的开发板是飞凌fl2440,<em>串口</em>接收1、2、3、4对应的led 1、2、3、4分别点亮。发送其他数字或字符全灭。 整个代码都是我自己敲的,没有调用2440addr.h等库,适合项目调用或者新手学习(带注释)。希望对你有帮助。
at91sam7X256串口中断程序
真正可用的at91sam7X256<em>串口</em>接收<em>中断</em>,亲自尝试。
串口中断通信协议的编写
通过这个项目可以了解上下位机传输数据的协议,了解相关的网络协议的存在有很大的帮助的
串口中断技术
基于ARM的<em>串口</em><em>中断</em>技术,嵌入式C编写,编译器KEIL3,仿真器proteus 7
stc串口中断
stc<em>串口</em><em>中断</em> #include #include #include #define uchar unsigned char #define uint unsigned int uchar receive[10];//¶¨ÒåÊý×é10λ
串口中断接收
基于HAL库的<em>串口</em><em>中断</em>接收.固定开头,不固定长度数据接收.
uart串口中断模式
uart<em>串口</em><em>中断</em>
串口中断收发
基于stc系列单片机双<em>串口</em><em>中断</em>收发。uart1
UCOS2 中串口中断
void Uart0_Exception(void)rnrn uint8 i;rnrn if ((U0IIR & 0x0F) == 0x04)rn rn rcv_new0 = 1; // 设置接收到新的数据标志rn for (i=0; i);rn rcv_new0 = 0;rn rnrn然后,我用<em>串口</em><em>调试</em>工具给ARM板发了个数据,结果是系统死了。当然,<em>串口</em>没有 输出过 BBBBB rnrn什么原因啊? 在UC/OS2 中 写<em>中断</em>,有其他需要注意的吗?
串口中断@mb90543
<em>串口</em><em>中断</em>实验。完成发送,幷<em>中断</em>接受。在<em>串口</em>助手的操作下。可以成功收发。波特率9600
单片机串口中断
单片机<em>串口</em><em>中断</em> 如何进行<em>串口</em>初始化 1.首先选择工作方式即SCON方式的选择(SCON,PCON) 2.波特率设置。  ( TMOD TH1 TL1) 3.<em>中断</em>开启(EA) 4.开始(TR) 1)sm0, SM1为方式寄存器 1.串行工作方式0 串行口工作方式0时,串行口作同步移位寄存器使用。以RXD(P3.0)端作为数据的输入和输出端,而TXD(P3.1)提供移位的时钟脉冲
stm32 串口中断程序
stm32 <em>串口</em>UART <em>中断</em>程序
stm32 串口中断方式
<em>串口</em>方式的比较,里面有多重stm32接收发送数据的使用说明
Stm32串口中断通信
STm32<em>串口</em><em>中断</em>通信实现,包括了stm32F1的库文件以及初始化代码等
串口发送中断
51单片机上的<em>串口</em>发送代码,简单的入门代码,发送完数据后会自动<em>中断</em>
STM32 串口中断接受
STM32<em>中断</em>接受,好用,已经测试过!
STM32的串口空闲中断
STM32<em>串口</em>使用DMA方式接收数据可以减小CPU的开销。对于接收定长数据,可以将DMA接收缓冲区的长度设定为待接收数据的长度,这样利用DMA的传输完成<em>中断</em>DMAx_IT_TCy就可以知道已经接收了一帧数据。对于接收不定长数据,如何知道意见完成了数据的接收呢?可以结合<em>串口</em>的空闲<em>中断</em>来实现。具体做法见http://wenku.baidu.com/link?url=ZGGaGpvy2dbSqoBaoT
在线答题系统(java、jsp、hibernate、struts1)下载
用户直接通过浏览器在线答题,题目通过后台录入,每次题目根据各级别题目的数量动态从题库中提取生成,答题完成之后可立刻判断答案对错,反馈给用户结果。另外,从后台也可以查看各用户的成绩。 暂时只考虑客观题,比方说选择题和判断题,不考虑主观题。 相关下载链接:[url=//download.csdn.net/download/greenxingqing/3004857?utm_source=bbsseo]//download.csdn.net/download/greenxingqing/3004857?utm_source=bbsseo[/url]
达内java笔记,精挑细选(达内助教整理)0积分下载
J2EE所有的知识点都详细的记录在里面了,浓缩的才是精华,放在手机里随时记一记背一背,这是精挑细选后的成果,在这里0积分奉献给大家。 相关下载链接:[url=//download.csdn.net/download/zhurizhiyiing/7615593?utm_source=bbsseo]//download.csdn.net/download/zhurizhiyiing/7615593?utm_source=bbsseo[/url]
云计算系列完整教程 第三部分下载
本书是中国云计算专家委员会刘鹏教授主编的系统讲解云计算技术的专业书籍,重点阐述了云计算领域具代表性的Google、亚马逊和微软三个三家公司的云计算平台的技术原理和应用方法,并介绍了以Hadoop为代表的开源云计算技术和云计算仿真器CloudSim,分析了云计算领域的理论研究热点问题,给出了云计算应用实例以及云计算实验的详细步骤。本书主要内容包括:Google的GFS、MapReduce、Bigtable、Chubby和App Engine等;亚马逊AWS的Dynamo、EC2、S3、SQS、SimpleDB和CloudFront等;微软的 Azure、SQL服务、.Net服务和Live服务等; 相关下载链接:[url=//download.csdn.net/download/qwbug/2783597?utm_source=bbsseo]//download.csdn.net/download/qwbug/2783597?utm_source=bbsseo[/url]
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo
我们是很有底线的