完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我在USPAR2上使用了DSIC33 FJ256GP506,并且我发送的数据总是错误的,除非我像0x55一样发送。PIC通过Max 323连接到PC机。与PC机相同的BPS相比,范围和级别看起来很好。脉冲不匹配。定义了UARTXXtiIS(TrISFBITS,TrISF5),定义UARTXXIO(PurfButs.r5),定义UARTXXTIIS(TrISFBITS,TrISF4),定义UARTXXIO(PofFITS.R4)UARTXX-TrIS=0;UARTXXTRIS=1;ValueAy AtIdTeTyx((α-IdultTytx))u2TxBuffic(空隙){IFS1BIT.U2TXIF=0;}使用UART.H从微BudValue= 0x0200;U2MoDuy= UARTHOULYCONE&UP;UARTHYRADAX禁用和UARTHYDISHORACE;UARTHYDISCORBACKUP和UARTHYBRGHEX16和UARTJONIOPARPAR8位和/ /UARTHYDISABAUD和*/UARTHAR1停止;U2Stavalue= /*UARTHYTIN TIXBUFIZULL和UARTHYRADA POLLY IVANZ0&*//uAuthTxPiNoLoad and */UARTHEXTXION和//UARTHYTIN TIN RXY3G4LYONE&*/UARTHARADRIDECTORDESTODIS和UARTHARXRXORUNRUNIOLIKE;OpenUART2(U2MODEVALUE,U2Stavalue,BaUdValy);Delayy(;)U2TXRGG=“A”;/*已经尝试ASCII,HEX,var -总是错误KysLim' me!谢谢,ABB
以上来自于百度翻译 以下为原文 I'm using uart2 on the dspic33fj256gp506 and my transmitted data is always wrong, unless I send like 0x55. pic connects to pc via max3232. Timing and levels on scope look good, comparing to what comes out of pc at same bps. Pulses don't match. Using uart.h from microchip solutions etc. code: #define UARTTX_TRIS (TRISFbits.TRISF5) #define UARTTX_IO (PORTFbits.RF5) #define UARTRX_TRIS (TRISFbits.TRISF4) #define UARTRX_IO (PORTFbits.RF4) UARTTX_TRIS = 0; UARTRX_TRIS = 1; void __attribute__((__interrupt__)) _U2TXInterrupt(void) { IFS1bits.U2TXIF = 0; } baudvalue = 0x0200; U2MODEvalue = UART_UEN_00 & UART_IDLE_CON & UART_IrDA_DISABLE & UART_DIS_WAKE & UART_DIS_LOOPBACK & UART_BRGH_SIXTEEN & UART_NO_PAR_8BIT & /*UART_DIS_ABAUD & */ UART_1STOPBIT; U2STAvalue = /* UART_INT_TX_BUF_EMPTY & UART_IrDA_POL_INV_ZERO & */ /*UART_TX_PIN_NORMAL & */ UART_TX_ENABLE & /* UART_INT_RX_3_4_FUL & */ UART_ADR_DETECT_DIS & UART_RX_OVERRUN_CLEAR; OpenUART2(U2MODEvalue, U2STAvalue, baudvalue); delay(); U2TXREG = 'a'; /* Have tried ascii, hex, var - always wrong Killin' me! Thanks, ABB |
|
相关推荐
19个回答
|
|
|
您似乎只复制了几行代码来显示。没有任何功能或循环。请提供您的真实代码,并使用“代码标签”的论坛。BaDualy= 0x0200,意味着什么?你真的用512波特测试吗?你真的想说0x55(字符U)与PC的通信是正确的,但是对于所有其他情况都是错误的?你在电脑上收到了什么?编辑:更改TX到TIFF位的PORTF位。
以上来自于百度翻译 以下为原文 You seem to have copied only a few lines of your code to show. There is no function or loop anywhere. Please provide your real code, and use "code tags" for the Forum. What should baudvalue = 0x0200; mean ? Are you really testing with 512 baud ? You really want to say that the communication with the PC is ok for 0x55 ( character u ), but wrong for all other cases ? What do you receive on the PC ? edit: change PORTF bits for TX to LATF bits. |
|
|
|
|
|
随着共享更多代码,你有任何范围捕获?PIC中的内容与你所期待的有什么不同?它与你从PC中得到的相比如何?此外,在黑暗中有一点镜头,但我已经通过使PIC TX PIN设置的空闲电平错误而被串行化。请记住(至少在PICS上我已经工作过),在UART完成传输之后,它将PIN控制释放回I/O端口逻辑,因此无论你在相应的LAT寄存器中设置的逻辑电平都将被输出到TX线路上。如果这不是正确的“空闲”级别,它会混淆另一端接收数据的内容。写入输出应始终是LATX寄存器。使用PORTX进行读和写的LATX。
以上来自于百度翻译 以下为原文 Along with sharing more code, do you have any scope captures? How exactly does what comes out of the PIC differ from what you are expecting? How does it compare to what you get out of the PC? Also, a bit of a shot in the dark, but I've gotten mangled serial by having the idle level of the PIC Tx pin set wrong. Bear in mind (at least on PICs I've worked with) that after the UART finishes transmitting, it releases pin control back to the I/O port logic, so whatever logic level you have set in the corresponding LAT register will be put out on the Tx line. If this isn't the correct "Idle" level, it can confuse whatever is on the other end receiving the data. +1 for this as well. Writing an output should always be to the LATx register. Use PORTx for reads and LATx for writes. |
|
|
|
|
|
发送OX55或OXAA并用示波器测量TX定时(比特时间是最短的H或L时间)“看”。比特时间的倒数值是波特率。这样,你应该能够确定你当前的TX波特率,并检查与PC的波特率匹配。快速简单…
以上来自于百度翻译 以下为原文 Transmit ox55 or oxAA and measure the TX timing with an oscilloscope (Bit time is the shortest H or L time you "see". The reciprocal value of the bit time is the baud rate). This way you should be able to determine your current TX baud rate and check for the match with the PC's baud rate. Fast and simple ... |
|
|
|
|
|
对不起的。我用PIC18S做了几百次,只是不知道该如何思考BRG号。就像我的钟不是我想的那样。设置MPLAB中的配置位是可以确定的。谢谢。ABBPIC正在做9600个BPS 0x0200=512。19.66兆赫晶体。计算不起作用。公式说我需要127(512/4)?PC 1100MS650MS850MS -------------------------------920MS220MSPIC1MS540MS 740MS840MS --------------------------------------------------------950MS220MSiNT主(空隙)} {INTi;i=0;初始化();(i,lt;10000)++i;i=0;波形:“A”当(1){/*加载发送缓冲器并发送相同的空字符时,*//*PutSuth2((未签名的INT*)TxDATA);*//PUSUTART2();U* TXRGG=“A”;/*等待传输完成* /(BUYYART2());而(i(lt;10000)i i++;i=0;}静态空格初始化板(空隙){*”(如果是定义的)PIC33 FXYA)/定义(μ-PIC24HAXY)//160MHz VCO输出(8MHz XT振荡器)CLKDIV= 0x000;//FRC:除以2,PLLPOST:除以2,PLLPRE:除以2πNeNF// 16位C30和32位C32//FoSSEL(FNSCOSPLIPLL)/PLL启用//OFSFC(O)SCIOFCNCYOFF和/XT OSC//OFFDT(FWDTENYOFF)/禁用的看门狗定时器/JTAG应该被禁用,//dSPIC33 F处理器定义GETSealCyCord()(19662000 UL)/HZ,定义GeEngestCortCork()(GETSealCyCord())2定义GePuturalCorCord()GETEn指令CyCord()/Explorer 16 + PIC24FHJ256GP610/DSPIC3FJ256GP710 PIM +以太网PICTHOLD PL//Explorer 16 + PIC32 MX460F512L/PIC32 MX360F512L PIM+以太网PICTHOLL,定义了CNVSTTYTIS(TrISCITS.TrISC1)//γ定义CNVSTYOI(LATCITS.LATC1)定义RSTY-TIIS(TrISCITS.TrISC2)//γ定义RSTYO IO(LATCITS.LATC2)定义BSY1LT J128GA010/PIC247.定义BSy2O-TrI(TrasgButs.TrISG0)//*定义BSy2SO IO(PoxGbuts.Rg0)定义BSy3O-TrI(TrasgButo.TrISG1)//y定义BSy3AIO(PoxGbuts.Rg1)定义Cs1O-TrIS(TrISdBo.TrISD0)//*定义CS1SyIO(LabdBo.LATD0)定义C22TrIS(TrISDITS.TrISD1)//μDEFI RIS(TrasgButs.TrISG7)//y定义BSy1SyIO(PrtgButs.RG.)定义了CS3O-TrIS(TrISDITS.TrISD2)//~定义CS3SO IO(LATDITS.LATD2),定义SavaPiTrIS(TrISdBut.TrISD3)//*定义SWAPHOIO(LATDITS.LATD3)*定义BuSuthGET()(*((易失性无符号CHAR*)(ANP;PORTB))/ /γ定义LeDyPoT(A)(*((Valueun-ChrimeChar *)(&LATA))=(a))TrISB= 0xFF NE CS2IIO(LATDIT)LATD1IS=1;BSy2O-TrIS=1;CS13TrIS=0;CS2Y-TrIs= 0;CS3O-TrIS=0;S/AUTARTY=定义UARTXX-TIIS(TrISFBITS,TrISF5)*定义UARTXXIO(LATFITS.RF5)α定义UARTXXTIIS(TrISFBITS,TrISF4)*定义UARTXXIO(LATFBIT.R4)UARTXXTRIS=0;UART;;//数据BuCNVSTST-TrIS=0;RSTYTrIS=0;BSy1Tr.RXA TrIS=1;LATFBITS。LATF5=1;//uMODE=0x8000;/ /设置UARTEN。注意:这必须在定义UtxEn**之前进行(μ-C30Sy)//USTA= 0x0400;//utxon集定义定义CuffestuuBrgGULL((GETFEUTURARALCCORDER())+8UL*BaDyRATE)/ 16 / BUDYATRATE-1)定义BUDYAUTHORE(GETEnEurralCcOffice)(16)/(CouthestuBurgGy值+ 1)/*这是UART2发送ISR*/ValueAy属性这是UART2接收ISR*//ValueyAtEdTyTyx((α-IdultType))μu2RxCube(空隙)//{//IFS1BIT.U2RXIF=0;//}/*关闭UART2Mult**/CuLUEARTAR2();/*配置UART2接收和发送中断*///CONTICONTARTAR2(UARTHARXRXIN IDEA和A)MP;UARTHARRXYTIN PR6&/UARTARTXXIN IDES和UARTHARTXYTIN PR2);/*配置UART2模块,用一个Stbit传输8位数据。还启用回环模式*/BudValue= 0x33f;U2MODYOUTUENY00和UARTHYIDLYCON和UARTHYRADAY禁用和UARTHYDISHORACE和UARTHYDISCORBACKUP和UARTHYBRGHEX16和UARTJONIOPARPY8 8BIT和/ UUTARJY DISYABAUD和*/UARTHAR1停机器;U2Stavalue= /*UARTHYTIN TIXBUFIHOLL和AMPUARTHI IrDaLoPixIn0&AMP/*UXARTXPIPIORAND AND;*/UARTHEXTXION和//UARTZIN TIN RXY3G4LYONE&*/UARTHARADRIDECTORDESTODIS和UARTHARXRXORUNRUNIORILL;OpenUART2(U2MODEVALUE,U2Stavalue,BaUdValx);
以上来自于百度翻译 以下为原文 Sorry. I've done this hundreds of times with pic18s, just not sure what to think about the brg number. Almost like my clock isn't what I think it is. Set the config bits in mplab to be sure. Thanks. ABB Pic is doing 9600 bps 0x0200 = 512. 19.66 mhz crystal. Calculations aren't working. Formula says I should need 127 (512/4) ? Waveforms: 'a' PC 110ms 650ms 850ms ------ ----------------------- ------- | | | | | ------ ------------- 950ms 220ms pic 110ms 540ms 740ms 840ms ------ ------------- ------- | | | | | --------------------- ---------- 950ms 220ms int main(void) #endif { int i; i=0; InitializeBoard(); while(i < 10000) ++i; i=0; while(1) { /* Load transmit buffer and transmit the same till null character is encountered */ /* putsUART2 ((unsigned int *)Txdata); */ // putsUART2(); U2TXREG = 'a'; /* Wait for transmission to complete */ while(BusyUART2()); while(i < 10000) i++; i=0; } } static void InitializeBoard(void) { #if defined(__dsPIC33F__) || defined(__PIC24H__) // Crank up the core frequency // PLLFBD = 38; // Multiply by 40 for 160MHz VCO output (8MHz XT oscillator) CLKDIV = 0x0000; // FRC: divide by 2, PLLPOST: divide by 2, PLLPRE: divide by 2 #endif // 16-bit C30 and and 32-bit C32 // _FOSCSEL(FNOSC_PRIPLL) // PLL enabled // _FOSC(OSCIOFNC_OFF & POSCMD_XT) // XT Osc // _FWDT(FWDTEN_OFF) // Disable Watchdog timer // JTAG should be disabled as well // dsPIC33F processor #define GetSystemClock() (19662000ul) // Hz #define GetInstructionClock() (GetSystemClock()/2) #define GetPeripheralClock() GetInstructionClock() // Explorer 16 + PIC24FJ128GA010/PIC24HJ256GP610/dsPIC33FJ256GP710 PIM + Ethernet PICtail Plus // Explorer 16 + PIC32MX460F512L/PIC32MX360F512L PIM + Ethernet PICtail Plus #define CNVST_TRIS (TRISCbits.TRISC1) // #define CNVST_IO (LATCbits.LATC1) #define RST_TRIS (TRISCbits.TRISC2) // #define RST_IO (LATCbits.LATC2) #define BSY1_TRIS (TRISGbits.TRISG7) // #define BSY1_IO (PORTGBITS.RG7) #define BSY2_TRIS (TRISGbits.TRISG0) // #define BSY2_IO (PORTGBITS.RG0) #define BSY3_TRIS (TRISGbits.TRISG1) // #define BSY3_IO (PORTGBITS.RG1) #define CS1_TRIS (TRISDbits.TRISD0) // #define CS1_IO (LATDbits.LATD0) #define CS2_TRIS (TRISDbits.TRISD1) // #define CS2_IO (LATDbits.LATD1) #define CS3_TRIS (TRISDbits.TRISD2) // #define CS3_IO (LATDbits.LATD2) #define SWAP_TRIS (TRISDbits.TRISD3) // #define SWAP_IO (LATDbits.LATD3) #define BUS_GET() (*((volatile unsigned char*)(&PORTB))) // #define LED_PUT(a) (*((volatile unsigned char*)(&LATA)) = (a)) TRISB = 0xff; // Data Bus CNVST_TRIS = 0; RST_TRIS = 0; BSY1_TRIS = 1; BSY2_TRIS = 1; BSY3_TRIS = 1; CS1_TRIS = 0; CS2_TRIS = 0; CS3_TRIS = 0; SWAP_TRIS = 0; // UART #define UARTTX_TRIS (TRISFbits.TRISF5) #define UARTTX_IO (LATFbits.RF5) #define UARTRX_TRIS (TRISFbits.TRISF4) #define UARTRX_IO (LATFbits.RF4) UARTTX_TRIS = 0; UARTRX_TRIS = 1; LATFbits.LATF5 = 1; // UMODE = 0x8000; // Set UARTEN. Note: this must be done before setting UTXEN #if defined(__C30__) // USTA = 0x0400; // UTXEN set #define CLOSEST_UBRG_VALUE ((GetPeripheralClock()+8ul*BAUD_RATE)/16/BAUD_RATE-1) #define BAUD_ACTUAL (GetPeripheralClock()/16/(CLOSEST_UBRG_VALUE+1)) /* This is UART2 transmit ISR */ void __attribute__((__interrupt__)) _U2TXInterrupt(void) { IFS1bits.U2TXIF = 0; } /* This is UART2 receive ISR */ // void __attribute__((__interrupt__)) _U2RXInterrupt(void) // { // IFS1bits.U2RXIF = 0; // } /* Turn off UART2module */ CloseUART2(); /* Configure uart2 receive and transmit interrupt */ // ConfigIntUART2(UART_RX_INT_DIS & UART_RX_INT_PR6 & // UART_TX_INT_DIS & UART_TX_INT_PR2); /* Configure UART2 module to transmit 8 bit data with one stopbit. Also Enable loopback mode */ baudvalue = 0x003f; U2MODEvalue = UART_UEN_00 & UART_IDLE_CON & UART_IrDA_DISABLE & UART_DIS_WAKE & UART_DIS_LOOPBACK & UART_BRGH_SIXTEEN & UART_NO_PAR_8BIT & /*UART_DIS_ABAUD & */ UART_1STOPBIT; U2STAvalue = /* UART_INT_TX_BUF_EMPTY & UART_IrDA_POL_INV_ZERO & */ /*UART_TX_PIN_NORMAL & */ UART_TX_ENABLE & /* UART_INT_RX_3_4_FUL & */ UART_ADR_DETECT_DIS & UART_RX_OVERRUN_CLEAR; OpenUART2(U2MODEvalue, U2STAvalue, baudvalue); #endif } |
|
|
|
|
|
110毫秒?说真的?将波特率约为9.1 BD的悲伤:如果它是110秒,你仍然会得到约9100 BD。UART传输不能复制超过5%个时间偏差。可能是“这里有点,有一点”的问题-这意味着一些分频器值必须设置为所需的VA。LUE减去1。这将是有意义的,因为你的传输可能比意图慢。IIRC波特率是从可能与振荡器时钟不同的外围时钟导出的。因此,我建议彻底检查您的代码的振荡器设置部分。
以上来自于百度翻译 以下为原文 110 ms ? Honestly? Would make a baud rate of some 9.1 Bd sad: And if it were 110 µs, you'd still end up with some 9100 Bd. UART transmissions cannot copy with more than 5 % timing deviations. Might be a question of "here a bit and there a bit" - meaning that some of the divider values have to be set to the desired value minus 1. Which would make some sense as your transmission might be slower than intended. IIRC the baud rate is derived from the peripheral clock that might differ from the oscillator clock. Thus I'd suggest to thoroughly check the oscillator setup section of your code. |
|
|
|
|
|
是的,UART BRG取决于FCY,这是FoC/2.OP,您有没有看过DSSPICF参考手册?http://www. McCux.com…0UART % 20(DS70188B)。
以上来自于百度翻译 以下为原文 Yes, the UART BRG depends on FCY, which is FOSC/2. OP, have you had a look at the dsPIC33F Reference manual? http://www.microchip.com....0UART%20(DS70188B).pdf |
|
|
|
|
|
DUH,改变了最后一个帖子中的BPS。现在看来3F=63。(19.66 MHz/2)/(16×9600)尝试1200个BPS。
以上来自于百度翻译 以下为原文 Duh, changed the bps in the last post. 3f = 63 Seems right now. (19.66mhz/2) / (16 * 9600) Was trying 1200 bps. |
|
|
|
|
|
是的,我们可能不是110,但是PIC和PC之间的时间是相当的。大约950US。波形明显不同。我知道是我。好极了,因为我在这里。到现在为止花了12个小时。试过各种各样的东西现在要验证LATF.BIT工作。谢谢,ABB。
以上来自于百度翻译 以下为原文 Yea us, not ms. Might not be exactly 110 but total time is pretty equal between pic and pc. about 950us. Waveform just noticably different. I know its me. Good thing, since I'm here. Spent like 12 hours on this so far. Tried all kinds of things. Going to verify latf.bits working now. Thanks, ABB |
|
|
|
|
|
无法切换LATF 5。在UART配置之后,这是可能的吗?
以上来自于百度翻译 以下为原文 Can't toggle latf 5. Should this be possible after uart config? |
|
|
|
|
|
时机看起来不错。测量约955 3.xxx。0x55发送罚款,0xAA被接收为0x95。0x88 RCDD AS0XE7
以上来自于百度翻译 以下为原文 Timing looks ok. Measured about 9553.xxx. 0x55 transmits fine, 0xaa is received as 0x95. 0x88 recd as 0xe7 |
|
|
|
|
|
您可以使用PIN作为U2TX(如果启用UART)或LATF5U2TX/SCL2/CN18/RF5,但不是同时进行。
以上来自于百度翻译 以下为原文 You can either use the pin as U2TX (if UART is enabled) or LATF5 U2TX/SCL2/CN18/RF5 but not both the same time. |
|
|
|
|
|
正确的,在LATF5中的值将只在PIN上被输出,如果它当前没有被UART2使用,或者在这种情况下类似于另一个外围的I2C2。在我的例子中,我已经看到了(当然,这是在PIC24F/PIC32 MX上,不知道它是否也适用于这里),UART只在传输期间控制TX,一旦它完成传输,它就释放控制返回到IO端口逻辑。
以上来自于百度翻译 以下为原文 Correct, the value in LATF5 will only be put out on the pin if it is not currently being used by the UART2 or another peripheral like I2C2 in this case. What I've seen though in my case (granted, this in on PIC24F/PIC32MX, don't know if it also applies here) that the UART only takes control of TX during the transmission, and once it finishes transmitting it releases control back to the IO Port logic. |
|
|
|
|
|
这个UART有一个选项(LSBit vs. MSBit)先传输吗?UART标准首先是LSBIT,看起来好像PC是“晚”了。虽然我很难想象起始点会怎样丢失,但是你写的“波形明显不同”。这种差异是如何表达的?(射程)会有帮助的。
以上来自于百度翻译 以下为原文 Does this UART have an option which bit (LSBit vs. MSBit) to transmit first? UART standard is LSBit first. Looks somehow as if the PC were "late". Although I can hardly imagine how the start bit could get lost. But you wrote "waveform noticeably different". How does this difference express? (Scope shot(s) would help.) |
|
|
|
|
|
当你不使用发射机时,你正在清理TXEN吗?这将释放引脚的控制。如果你不接触TXEN或SPEN,它就不会被释放。
以上来自于百度翻译 以下为原文 Are you clearing TXEN when you're not using the transmitter? That would release control of the pin. It shoudn't be released if you're not touching TXEN or SPEN. |
|
|
|
|
|
我自己设置/清除它。是的,每当一个字符被传送到发送移位寄存器,txReg是空的时候,我的TX ISR集就被开火。因此,我通常加载一个我要发送的缓冲区,设置TXEN=1来启动我的传输,并得到第一个中断(设置TXEN=1,在设置之后,将导致TX中断2个周期),每次发生TX中断时,将一个字符从缓冲区放入TXRG,然后设置TXEN=0。从缓冲器中的LL字符完成了传输。我现在意识到,我必须担心的唯一原因是因为我正在进行传输。事实上,现在我再看一遍我的代码,当我初始化UART并通过将第一个字符加载到ISR外部的TxReg时,可以让TXEN高,然后让ISR处理所有的子程序。NT字符。不需要那样接触TXEN。
以上来自于百度翻译 以下为原文 I am setting/clearing it myself yes. I have my TX ISR set to fire whenever a character is transferred to the Transmit Shift Register and TXREG is empty. So I typically load up a buffer of what I want to send out, set TXEN = 1 to start my transmission and get that first interrupt (as setting TXEN = 1 will cause a TX Interrupt 2 cycles after being set), put a character from my buffer into TXREG each time a TX interrupt occurs, then set TXEN =0 when all characters from the buffer are done transmitting. I'm realizing now that the only reason I have to worry about it is because of the method in which I'm doing my transmission. Shouldn't be the problem in the OP's case I wouldn't think. Actually, now that I look at my code again, I could probably just leave TXEN high when I initialize the UART and start my transmissions by loading the first character into TXREG outside the ISR then let the ISR take care of all the subsequent characters. No need to touch TXEN that way. |
|
|
|
|
|
的确,但是当你没有东西要发送的时候,你必须清除TXYE。
以上来自于百度翻译 以下为原文 Indeed, but you will have to clear TXIE when you have nothing to send. |
|
|
|
|
|
昨晚我尝试了各种方法,直到半夜。我在工作的时候,在我自己的时间里,因为我看起来像个白痴,即使我已经做了几百个PIC18的产品,使用UART和其他的一切。数据分析总是错误的。除0x55之外。0x5A在所有BPS中产生0x95。是否有另一个可以在寄存器或针上跺脚的PypH?我和几年前使用过这个芯片的人谈过,他们说UART吸吮了。因为没有找到原因,他只能在一个错误的时间里重演一对夫妇。DSPIC33 FJ256GP506?
以上来自于百度翻译 以下为原文 I tried all kinds of thing till midnight last night. And I'm doing this for work, on my own time, because I look like an idiot, even though I've got hundreds of pic18 products done, using uart and just about everything else. Data comming out is consistently wrong. Except 0x55. 0x5a yields 0x95 at all bps. Is there another periph that could be stomping on the register or the pin? I spoke to someone that used this chip years ago and they said the uart sucked. Could only rec a couple chars at a time error free for some reason he never found. dspic33fj256gp506? |
|
|
|
|
|
嗯,DSIC33 FJ256GP506不推荐用于新的设计。有一个DSIC33 FJ256GP506A。勘误表列出了这些UART问题:UART - 17。在启用了奇偶校验选项后,如果波特率发生器(BRG)包含奇数值UART—18,则可能出现奇偶校验错误。接收缓冲器溢出错误状态位可以在UART FIFO溢出之前得到设置。如果BRG设置为4xMODE。UART - 20,UART接收可能损坏。UTXISEL0位总是被读回为零。xxx21。当BRG设置为4X模式时,自动波特特性可能无法计算正确的波特率。由于选择了自动波特特性,同步中断字符(0x55)可以作为数据加载到FIFO中。有一些错误…也许有些损害了UART…
以上来自于百度翻译 以下为原文 Well, the dsPIC33FJ256GP506 is not Recommended for new designs. There is a dsPIC33FJ256GP506A. The errata lists these USART Problems: UART — 17. With the parity option enabled, a parity error may occur if the Baud Rate Generator (BRG) contains an odd value. UART — 18. The Receive Buffer Overrun Error Status bit may get set before the UART FIFO has overflowed. 19. UART receptions may be corrupted if the BRG is set up for 4x mode. UART — 20. The UTXISEL0 bit is always read back as zero. X X X 21. The auto-baud feature may not calculate the correct baud rate when the BRG is set up for 4x mode. 22. With the auto-baud feature selected, the Sync Break character (0x55) may be loaded into the FIFO as data. Seems there is a reason there is a revised A version. There are some bugs... perhaps some impair usart... |
|
|
|
|
|
这是什么?MaimeMo UART1.C:228:警告:PSV模型未被指定为'U2TxBuff';假设“AutoPSPV”,这可能影响等待时间。
以上来自于百度翻译 以下为原文 What's this? MainDemo uart1.c:228: warning: PSV model not specified for '_U2TXInterrupt'; assuming 'auto_psv' this may affect latency |
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 02:08 , Processed in 1.169409 second(s), Total 78, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1540