⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart.lst

📁 完成数据的采集
💻 LST
📖 第 1 页 / 共 2 页
字号:
    137          }
    138          
    139          Boolean	UsartTXD(pUartFifo_t TFifo,pUartFifo_t RFifo,Int16U *pos)
    140          {
    141            Int16U    a,b;
    142            //RFifo->Buffer[5]=10,RFifo->Buffer[3]=0,RFifo->Buffer[1]=3;
    143          #if 1
    144          	if((RFifo->UsartStatus==0)||(RFifo->Buffer[C_RX_ADDR]!=*pos))
    145          		{
    146          			RFifo->Timer=RFifo->PushIndx=0;
    147          			return FALSE;
    148          		}
    149          #endif
    150          	
    151          	//USART_Cmd(USART1, DISABLE);
    152          	b=RFifo->Buffer[5];//length
    153          	TFifo->Buffer[0]=*(pos+C_PrductADD);
    154          	TFifo->Buffer[1]=RFifo->Buffer[1];
    155          	if((RFifo->Buffer[3]+RFifo->Buffer[5])>(UART_FIFO_SIZE-2))TFifo->Buffer[1]=0x83;
    156          	TFifo->PushIndx=2,a=RFifo->Buffer[3];//address
    157          	if(TFifo->Buffer[1]==3)
    158          	{
    159          		pos+=a;
    160          		a=2;
    161          		for(;b>0;b--)
    162          		{
    163          			TFifo->Buffer[TFifo->PushIndx]=*pos>>8;
    164          			TFifo->Buffer[++TFifo->PushIndx]=*pos&0xff;
    165          			pos++,TFifo->PushIndx++;
    166          		}
    167          	}
    168          		b=cal_crc(TFifo->Buffer,TFifo->PushIndx);
    169          		TFifo->Buffer[TFifo->PushIndx]=b>>8;
    170          		TFifo->Buffer[++(TFifo->PushIndx)]=b&0xFF;
    171                         
    172          	  TFifo->PopIndx=0;
    173          	  USART_ITConfig(USART1,USART_IT_PE  ,ENABLE);//校验错误中断
    174              USART_ITConfig(USART1,USART_IT_TC  ,DISABLE);//发送完成中断使能
    175              USART_ITConfig(USART1,USART_IT_RXNE,DISABLE);//接收非空使能
    176              USART_ITConfig(USART1,USART_IT_IDLE,DISABLE);
    177              USART_ITConfig(USART1,USART_IT_LBD ,DISABLE);
    178              USART_ITConfig(USART1,USART_IT_CTS ,DISABLE);
    179              USART_ITConfig(USART1,USART_IT_ERR ,DISABLE);
    180              FifoPop(pUart1TxFifo,USART1); 
    181              USART1_485TXD; 
    182              USART_ITConfig(USART1,USART_IT_TXE,ENABLE);
    183              //USART_Cmd(USART1, ENABLE);  
    184          	  
    185          	  return 	FALSE;
    186          }
    187          
    188          ///////////////////////////////////////////////
    189          ///////////////////////////////////////////////
    190          void Uart1Init()
    191          {
    192           USART_Cmd(USART1, DISABLE);  
    193          USART_InitTypeDef  UART_InitStructure;
    194          NVIC_InitTypeDef NVIC_InitStructure;
    195          GPIO_InitTypeDef GPIO_InitStructure;
    196             pUart1TxFifo=&Uart1TxFifo;
    197             pUart1RxFifo=&Uart1RxFifo;
    198             UART_InitStructure.USART_BaudRate = BAUD_TAB[_YT._Rate&7]; 
    199            UART_InitStructure.USART_WordLength = USART_WordLength_8b;
    200            UART_InitStructure.USART_StopBits = USART_StopBits_1;
    201            UART_InitStructure.USART_Parity = USART_Parity_No ;
    202            UART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    203            UART_InitStructure.USART_Mode = USART_Mode_Rx|USART_Mode_Tx ;
    204            UART_InitStructure.USART_Clock = USART_Clock_Disable;
    205            UART_InitStructure.USART_CPOL = USART_CPOL_Low;
    206            UART_InitStructure.USART_CPHA = USART_CPHA_1Edge;
    207            UART_InitStructure.USART_LastBit = USART_LastBit_Disable;
    208            
    209             UART_InitStructure.USART_Parity = USART_Parity_No;  
    210              USART_DeInit(USART1);
    211              RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
    212              RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    213              RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA,DISABLE);
    214              GPIO_PinRemapConfig(GPIO_Remap_USART1,DISABLE);
    215              // Assign PA9 to UART1 (Tx)
    216              GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    217              GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    218              GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
    219              GPIO_Init(GPIOA, &GPIO_InitStructure);
    220              // Assign PA10 to UART1 (Rx)
    221              GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    222              GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
    223              GPIO_Init(GPIOA, &GPIO_InitStructure);
    224              // Init UART1
    225              USART_Init(USART1,&UART_InitStructure);
    226              // Enable and configure the priority of the UART1 Update IRQ Channel
    227              NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;
    228              NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =10;//4 UART1_INTR_PRI;
    229              NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//5
    230              NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    231              NVIC_Init(&NVIC_InitStructure);
    232          
    233              USART_ClearFlag(USART1, USART_FLAG_CTS | USART_FLAG_LBD  | USART_FLAG_TXE  |
    234                                      USART_FLAG_TC  | USART_FLAG_RXNE | USART_FLAG_IDLE |
    235                                      USART_FLAG_ORE | USART_FLAG_NE   | USART_FLAG_FE |
    236                                      USART_FLAG_PE);
    237          
    238              // Enable UART1 interrupts
    239              //USART_ITConfig(USART1,USART_IT_PE  ,ENABLE);//校验错误中断
    240              USART_ITConfig(USART1,USART_IT_PE  ,ENABLE); // DISABLE
    241               USART_ITConfig(USART1,USART_IT_TXE  ,DISABLE);
    242              USART_ITConfig(USART1,USART_IT_TC  ,DISABLE);//发送完成中断使能
    243              USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//接收非空使能
    244              USART_ITConfig(USART1,USART_IT_IDLE,DISABLE);
    245              USART_ITConfig(USART1,USART_IT_LBD ,DISABLE);
    246              USART_ITConfig(USART1,USART_IT_CTS ,DISABLE);
    247              USART_ITConfig(USART1,USART_IT_ERR ,DISABLE);
    248              USART1_485RXD;
    249              Uart1RxFifo.UsartStatus=0;
    250               USART_Cmd(USART1, ENABLE);
    251              
    252          }
    253          

   Maximum stack usage in bytes:

     Function  .cstack
     --------  -------
     FifoPop        8
     FifoPush      24
     Uart1Init     40
     Uart1Isr       8
     UsartRXD      24
     UsartTXD      24


   Section sizes:

     Function/Label Bytes
     -------------- -----
     BAUD_TAB          8
     FifoPush         60
     FifoPop          42
     Uart1Isr        268
     UsartRXD        216
     UsartTXD        288
     Uart1Init       416
     ??DataTable26     4
     ??DataTable36     4
     ??DataTable38     4
     ??DataTable40     4
     ??DataTable42     4
     ??DataTable44     4
     ??DataTable46     4
     ??DataTable50     4
     ??DataTable52     4
     ??DataTable53     4
     ??DataTable54     4

 
     8 bytes in section .rodata
 1 334 bytes in section .text
 
 1 334 bytes of CODE  memory
     8 bytes of CONST memory

Errors: none
Warnings: none

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -