STM32中USART常用的发送函数

1.中断模式

void USART2_IRQHandler(void)                 //串口2中断服务程序
{
 u8 u8Temp;
 /*****************发送中断************************************/
 if (USART_GetITStatus(USART2, USART_IT_TXE) == SET)
 { 
  if(TX2_cn == TX2_no)
  {
  DIS_485TX();
  USART_ITConfig(USART2, USART_IT_TXE, DISABLE);
   USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
   u8Uart2_FSM = U_FSM_ADR;
  }
  else
  {
  u8Temp = TX2_buff[TX2_cn++];
  USART2->DR = (u16)u8Temp;
// GPIOD->ODR &= ~(GPIO_Pin_4);
  }
 }

2.轮询模式

 for(TX1_cn = 0;TX1_cn <= TX1_no;TX1_cn++)  //查询发送
 {
  while((USART1->SR&0x40)==0);
USART1->DR = (u16)UFlashBuff[TX1_cn];
 }




你可能感兴趣的:(ARM的学习)