久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2063|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

PIC24HJ系列單片機(jī)串口通信的一點(diǎn)問(wèn)題

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 10 黑幣 回復(fù)本帖可獲得 10 黑幣獎(jiǎng)勵(lì)! 每人限 1 次(中獎(jiǎng)概率 80%)
跳轉(zhuǎn)到指定樓層
樓主
ID:523178 發(fā)表于 2021-8-5 20:26 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這幾天在入門PIC24HJ128GP506A單片機(jī),之前沒(méi)有接觸過(guò),在學(xué)習(xí)它的UART外設(shè)時(shí),遇到了單片機(jī)接收上位機(jī)數(shù)據(jù)不準(zhǔn)確的問(wèn)題,單片機(jī)向上位機(jī)發(fā)送數(shù)據(jù),上位機(jī)接收正確。下面是的我代碼:
  1. // PIC24HJ128GP506A Configuration Bit Settings

  2. // 'C' source line config statements

  3. // FBS
  4. #pragma config BWRP = WRPROTECT_OFF     // Boot Segment Write Protect (Boot Segment may be written)
  5. #pragma config BSS = NO_FLASH           // Boot Segment Program Flash Code Protection (No Boot program Flash segment)
  6. #pragma config RBS = NO_RAM             // Boot Segment RAM Protection (No Boot RAM)

  7. // FSS
  8. #pragma config SWRP = WRPROTECT_OFF     // Secure Segment Program Write Protect (Secure segment may be written)
  9. #pragma config SSS = NO_FLASH           // Secure Segment Program Flash Code Protection (No Secure Segment)
  10. #pragma config RSS = NO_RAM             // Secure Segment Data RAM Protection (No Secure RAM)

  11. // FGS
  12. #pragma config GWRP = OFF               // General Code Segment Write Protect (User program memory is not write-protected)
  13. #pragma config GSS = OFF                // General Segment Code Protection (User program memory is not code-protected)

  14. // FOSCSEL
  15. #pragma config FNOSC = PRIPLL           // Oscillator Mode (Primary Oscillator (XT, HS, EC) w/ PLL)
  16. #pragma config IESO = ON                // Two-speed Oscillator Start-Up Enable (Start up with FRC, then switch)

  17. // FOSC
  18. #pragma config POSCMD = HS              // Primary Oscillator Source (HS Oscillator Mode)
  19. #pragma config OSCIOFNC = OFF           // OSC2 Pin Function (OSC2 pin has clock out function)
  20. #pragma config FCKSM = CSECMD           // Clock Switching and Monitor (Clock switching is enabled, Fail-Safe Clock Monitor is disabled)

  21. // FWDT
  22. #pragma config WDTPOST = PS32768        // Watchdog Timer Postscaler (1:32,768)
  23. #pragma config WDTPRE = PR128           // WDT Prescaler (1:128)
  24. #pragma config WINDIS = ON              // Watchdog Timer Window (Watchdog Timer in Window mode)
  25. #pragma config FWDTEN = OFF             // Watchdog Timer Enable (Watchdog timer enabled/disabled by user software)

  26. // FPOR
  27. #pragma config FPWRT = PWR128           // POR Timer Value (128ms)

  28. // FICD
  29. #pragma config ICS = PGD1               // Comm Channel Select (Communicate on PGC1/EMUC1 and PGD1/EMUD1)
  30. #pragma config JTAGEN = ON              // JTAG Port Enable (JTAG is Enabled)

  31. // #pragma config statements should precede project file includes.
  32. // Use project enums instead of #define for ON and OFF.

  33. #include <xc.h>

  34. #define FCY         40000000
  35. #define BAUDRATE    9600
  36. #define BRGVAL      ((FCY/BAUDRATE)/16)-1
  37. unsigned int i;
  38. char RecvData;


  39. void uart_init(void)
  40. {
  41.     //Configure System Clock.
  42.     /* Fosc = Fin * M /(N1 * N2) */
  43.     PLLFBD = 18;                        //M = 20
  44.     CLKDIVbits.PLLPOST = 0;             //N1 = 2
  45.     CLKDIVbits.PLLPRE  = 0;             //N2 = 2
  46.     OSCTUN = 0;
  47.     RCONbits.SWDTEN = 0;
  48.     //Wait for PLL to lock
  49.     while(OSCCONbits.LOCK != 1);
  50.    
  51.     U1MODEbits.STSEL = 0;
  52.     U1MODEbits.PDSEL = 0;
  53.     U1MODEbits.ABAUD = 0;
  54.     U1MODEbits.BRGH  = 0;
  55.    
  56.    
  57.     U1BRG = BRGVAL;                          //波特率9600
  58.    
  59.    
  60.     U1STAbits.UTXISEL0 = 0;
  61.     U1STAbits.URXISEL = 0;
  62.    
  63.     IEC0bits.U1TXIE = 1;
  64.     IEC0bits.U1RXIE = 1;
  65.     IPC2bits.U1RXIP = 0x02;
  66.     IPC3bits.U1TXIP = 0x01;
  67.    
  68.     U1MODEbits.UARTEN = 1;                    //使能UART
  69.     U1STAbits.UTXEN   = 1;                    //使能UART 發(fā)送
  70.    
  71.    
  72.     for(i = 0; i < 4160; i++){
  73.         Nop();
  74.     }
  75.     U1TXREG = 'a';
  76. }

  77. void led_init(void)
  78. {
  79.     TRISDbits.TRISD10 = 0;                    //設(shè)置D7端口為輸出模式
  80. }


  81. int main(void)
  82. {
  83.    
  84.     uart_init();
  85.     led_init();                              //初始化LED
  86.    
  87.     while(1){
  88. //        if(U1STAbits.URXDA == 1){
  89. //            RecvData = U1RXREG;
  90. //            U1TXREG = RecvData;
  91. //        }
  92.         if(RecvData == 'H'){
  93.             LATDbits.LATD10 = 0;
  94.         }else if(RecvData == 'N'){
  95.             LATDbits.LATD10 = 1;
  96.         }
  97.     }
  98.    
  99.     return 0;
  100.    
  101. }

  102. void __attribute__((__interrupt__, __no_auto_psv__)) _U1TXInterrupt(void)
  103. {
  104.    
  105.     IFS0bits.U1TXIF = 0;
  106. }


  107. void __attribute__((__interrupt__, __no_auto_psv__)) _U1RXInterrupt(void)
  108. {
  109.     if(U1STAbits.URXDA == 1){
  110.         RecvData = U1RXREG;
  111.     }
  112.     IFS0bits.U1RXIF = 0;
  113. }
復(fù)制代碼
可以在主函數(shù)中看到,我判斷接收的到的字符是否是“H”或“N”,其實(shí)這是我在DEBUG時(shí)發(fā)現(xiàn)的,原來(lái)我判斷的是“o”和“c” open & close, 但是實(shí)際RecvData的值為
“H”或“N”。實(shí)在是不知道問(wèn)題出哪里了,有懂的大神幫忙看看。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:81196 發(fā)表于 2021-8-6 10:31 | 只看該作者
比特率是不是不對(duì),停止位和校驗(yàn)位呢
回復(fù)

使用道具 舉報(bào)

板凳
ID:523178 發(fā)表于 2021-8-9 11:11 | 只看該作者
shumivan 發(fā)表于 2021-8-6 10:31
比特率是不是不對(duì),停止位和校驗(yàn)位呢

解決了,代碼沒(méi)問(wèn)題,線接錯(cuò)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜黄色影院 | 91福利在线观看视频 | 日本黄色影片在线观看 | 久久999| 国产精品无 | 国产精品久久久久久二区 | www.99热这里只有精品 | 四虎成人免费电影 | 久久丝袜视频 | 国产成人免费在线 | 久久av一区二区三区 | 久久精品国产久精国产 | 欧美日韩中文在线观看 | 精品日韩一区二区三区av动图 | 亚洲欧美中文日韩在线v日本 | 久久久久1 | 黄色三级免费 | 国产欧美精品一区 | 亚洲精品乱码久久久久久蜜桃91 | 美美女高清毛片视频免费观看 | 高清亚洲 | 国产成人99 | 99精品国产在热久久 | 91精品久久久久久久久99蜜臂 | 在线国产一区 | 五月激情综合网 | 成人av电影免费在线观看 | 在线一级片 | 成人免费一级视频 | 日韩中文字幕一区二区 | av电影一区 | 色伊人网 | 女同久久另类99精品国产 | 亚洲永久精品国产 | 在线婷婷| 一级一级毛片免费看 | 国产成人影院 | 亚洲精品视频一区 | 91五月婷蜜桃综合 | 欧美日韩国产一区二区三区 | 色眯眯视频在线观看 |