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

標題: 新唐M482單片機串口讀不到發(fā)送寄存器 [打印本頁]

作者: jinni_wu    時間: 2021-8-5 17:00
標題: 新唐M482單片機串口讀不到發(fā)送寄存器
最近在調(diào)試新唐 M482串口,想去判斷發(fā)送數(shù)據(jù)是否發(fā)完,去讀里面的寄存器讀不到。
  1. void SYS_Init(void)
  2. {

  3.     /* Set XT1_OUT(PF.2) and XT1_IN(PF.3) to input mode */
  4.         PF->MODE &= ~(GPIO_MODE_MODE2_Msk | GPIO_MODE_MODE3_Msk);

  5.     /* Enable HXT clock (external XTAL 12MHz) */
  6.         CLK_EnableXtalRC(CLK_PWRCTL_HXTEN_Msk);

  7.     /* Wait for HXT clock ready */
  8.         CLK_WaitClockReady(CLK_STATUS_HXTSTB_Msk);

  9.     /* Set core clock as PLL_CLOCK from PLL */
  10.         CLK_SetCoreClock(FREQ_100MHZ);

  11.     /* Set PCLK0/PCLK1 to HCLK/2 */
  12.         //CLK->PCLKDIV = (CLK_PCLKDIV_PCLK0DIV2 | CLK_PCLKDIV_PCLK1DIV2);
  13.         CLK->PCLKDIV = CLK_PCLKDIV_APB0DIV_DIV2 | CLK_PCLKDIV_APB1DIV_DIV2;

  14.         CLK_EnableModuleClock(EMAC_MODULE);
  15.         //CLK_EnableModuleClock(TMR2_MODULE);//time2_delay

  16.   // Configure MDC clock rate to HCLK / (127 + 1) = 1.5 MHz if system is running at 192 MHz
  17.         CLK_SetModuleClock(EMAC_MODULE, 0, CLK_CLKDIV3_EMAC(127));
  18.       // CLK_SetModuleClock(TMR2_MODULE, CLK_CLKSEL1_TMR2SEL_HXT, 0);//time2_delay

  19.         SYS->GPC_MFPL |= SYS_GPC_MFPL_PC6MFP_EMAC_RMII_RXD1 | SYS_GPC_MFPL_PC7MFP_EMAC_RMII_RXD0;
  20.         SYS->GPC_MFPH |= SYS_GPC_MFPH_PC8MFP_EMAC_RMII_REFCLK;
  21.         SYS->GPE_MFPH |= SYS_GPE_MFPH_PE8MFP_EMAC_RMII_MDC |
  22.                      SYS_GPE_MFPH_PE9MFP_EMAC_RMII_MDIO |
  23.                      SYS_GPE_MFPH_PE10MFP_EMAC_RMII_TXD0 |
  24.                      SYS_GPE_MFPH_PE11MFP_EMAC_RMII_TXD1 |
  25.                      SYS_GPE_MFPH_PE12MFP_EMAC_RMII_TXEN;

  26.         // Enable high slew rate on all RMII TX output pins
  27.         PE->SLEWCTL = (GPIO_SLEWCTL_HIGH << GPIO_SLEWCTL_HSREN10_Pos) |
  28.                   (GPIO_SLEWCTL_HIGH << GPIO_SLEWCTL_HSREN11_Pos) |
  29.                   (GPIO_SLEWCTL_HIGH << GPIO_SLEWCTL_HSREN12_Pos);

  30. }

  31. char uart3_send(unsigned char psdt)
  32. {
  33. printf("\n==rs485_send==
  34. UART_INTSTS_TXENDINT_Msk=%d,UART_INTSTS_TXENDIF_Msk=%d,UART_INTSTS_THREINT_Msk=%d,UART_INTSTS_THREIF_Msk=%d\n",UART3->INTSTS
  35. & UART_INTSTS_TXENDINT_Msk,UART3->INTSTS &
  36. UART_INTSTS_TXENDIF_Msk,UART3->INTSTS &
  37. UART_INTSTS_THREINT_Msk,UART3->INTSTS & UART_INTSTS_THREIF_Msk);
  38. printf("\n==rs485_send==

  39. UART_FIFOSTS_TXEMPTYF_Msk=%d,UART_FIFOSTS_TXFULL_Msk=%d,UART_FIFOSTS_TXEMPTY_Msk=%d\n",UART3->FIFOSTS
  40. & UART_FIFOSTS_TXEMPTYF_Msk,UART3->FIFOSTS &
  41. UART_FIFOSTS_TXFULL_Msk,UART3->FIFOSTS &
  42. UART_FIFOSTS_TXEMPTY_Msk);
  43.         //if (UART_GET_INT_FLAG(UART2, UART_INTSTS_TXENDINT_Msk))//發(fā)送完成中斷
  44.         {
  45.                 UART_WRITE(UART3 , psdt);
  46.                 return (1);
  47.         }
  48.         //else
  49.         //{
  50.         //        return (0);
  51.         //}
  52.         
  53. }
  54. void UART3_IRQHandler(void)
  55. {
  56.         unsigned char rdat;
  57.         if(UART_GET_INT_FLAG(UART3, UART_INTSTS_RDAINT_Msk) )//RDA中斷
  58.         {
  59.             /* Get all the input characters */
  60.                 while(UART_IS_RX_READY(UART3))
  61.                 {

  62.                     /* Get the character from UART Buffer */
  63.                         rdat = UART_READ(UART3);
  64.                 rs485_serial_interrupt(rdat);
  65.                 }
  66.                            /* Disable UART RDA/THRE/Time-out interrupt */
  67.         }

  68. }

  69. void UART3_Init(void)
  70. {
  71.                 /* Enable UART module clock */
  72.         CLK_EnableModuleClock(UART3_MODULE);//允許串口1模塊時鐘

  73.         /* Select UART module clock source as HXT and UART module clock divider as 1 */
  74.         CLK_SetModuleClock(UART3_MODULE, CLK_CLKSEL3_UART3SEL_HXT, CLK_CLKDIV4_UART3(1));//設置串口1時鐘為HXT
  75.         
  76.              /* Set GPC multi-function pins for UART1 RXD (PC9)and TXD (PC10)*/
  77.             SYS->GPC_MFPH &= ~(SYS_GPC_MFPH_PC9MFP_Msk | SYS_GPC_MFPH_PC10MFP_Msk);
  78.             SYS->GPC_MFPH |= (SYS_GPC_MFPH_PC9MFP_UART3_RXD | SYS_GPC_MFPH_PC10MFP_UART3_TXD);
  79.         
  80.         SYS_ResetModule(UART3_MODULE);//復位串口1

  81.             /* Configure UART1 and set UART1 baud rate */
  82.             UART_Open(UART3, 115200);
  83.         NVIC_EnableIRQ(UART3_IRQn);
  84.        UART_EnableInt(UART3, UART_INTEN_RDAIEN_Msk);//接收數(shù)據(jù)中斷
  85.        UART3->INTSTS = (UART_INTSTS_TXENDIF_Msk);
  86.         //UART_EnableInt(UART1, (UART_INTEN_RDAIEN_Msk|UART_INTEN_TXENDIEN_Msk));//接收數(shù)據(jù)中斷  發(fā)送完成中斷
  87.         //NVIC_SetPriority(UART1_IRQn, 0);//中斷優(yōu)先級

  88. }


  89. int main(void)
  90. {

  91. /* Unlock protected registers */
  92.         SYS_UnlockReg();

  93.          /* Init System, peripheral clock and multi-function I/O */
  94.         SYS_Init();
  95.         /* Lock protected registers */
  96.             SYS_LockReg();
  97.         
  98.          /* Init UART0 for printf */
  99.         UART0_Init();//串口打印

  100.         UART3_Init();

  101. WDT_Init();/* Init watchdog */
  102.         
  103.         Kick_Dog();
  104.         while(1)
  105.         {

  106.         }

  107. }

  108. 監(jiān)測這如下寄存器,不管有沒有數(shù)據(jù)發(fā)送下面打印出來的數(shù)據(jù)都是一樣

  109. printf("\n==rs485_send==
  110. UART_INTSTS_TXENDINT_Msk=%d,UART_INTSTS_TXENDIF_Msk=%d,UART_INTSTS_THREINT_Msk=%d,UART_INTSTS_THREIF_Msk=%d\n",UART3->INTSTS
  111. & UART_INTSTS_TXENDINT_Msk,UART3->INTSTS &
  112. UART_INTSTS_TXENDIF_Msk,UART3->INTSTS &
  113. UART_INTSTS_THREINT_Msk,UART3->INTSTS & UART_INTSTS_THREIF_Msk);
  114. printf("\n==rs485_send==

  115. UART_FIFOSTS_TXEMPTYF_Msk=%d,UART_FIFOSTS_TXFULL_Msk=%d,UART_FIFOSTS_TXEMPTY_Msk=%d\n",UART3->FIFOSTS
  116. & UART_FIFOSTS_TXEMPTYF_Msk,UART3->FIFOSTS &
  117. UART_FIFOSTS_TXFULL_Msk,UART3->FIFOSTS &
  118. UART_FIFOSTS_TXEMPTY_Msk);
復制代碼







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲国产成人久久综合一区,久久久国产99 | 亚洲色图第一页 | 亚洲高清免费观看 | 91精品久久 | 精品综合网| 九九热精品视频在线观看 | 精品欧美一区二区三区久久久小说 | 日本a级大片 | aaaa一级毛片 | 99成人精品| 欧美一级大片 | 精品国产乱码久久久久久88av | 亚洲欧美视频一区二区 | 成人在线视频免费播放 | xx性欧美肥妇精品久久久久久 | 日韩在线成人 | 久久国产精品无码网站 | 日日操操| 亚洲播放一区 | 精品一区二区三区在线观看国产 | 午夜小电影 | av中文字幕在线 | 久久久人成影片一区二区三区 | 国产观看 | 欧美在线视频一区二区 | 精品av| 天天干天天玩天天操 | 精品一区二区三 | 91在线观看视频 | 天天射天天干 | 国产精品久久久久久久久久久久久 | 久久久www| 欧洲在线视频 | 国产欧美精品一区二区三区 | 久久久久久91 | 国产剧情一区 | 国产日韩精品一区 | 日韩视频免费在线 | 国产精品久久久久久婷婷天堂 | 国产精品成人在线播放 | 精区3d动漫一品二品精区 |