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];
}