/******************************************************************************************* * 函数名:UART3_SendString() * 参数 :uint8_t *s 指向字符串的指针 * 返回值:void * 描述 :UART3发送字符串函数 *********************************************************************************************/ void UART3_SendString(uint8_t *s) { while(*s) //判断是否到字符串末尾 { UART3_SendByte(*s); //发送指针当前所指的字节 s++; //地址加1 } }
/******************************************************************************************* * 函数名:UART3_Handler() * 参数 :void * 返回值:void * 描述 :UART3中断服务函数 *********************************************************************************************/ void UART3_Handler(void) { uint8_t temp; if((UART3->UART_SR& UART_SR_RXRDY)==1) { //接收数据中断 temp= UART3->UART_RHR&0xff; //接收一个字节 UART3_SendByte(temp); //将接收的数据发回 } }
void RefreshDma(void) { static int m=0; UART3_SendByte(0xff); while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); UART3_SendByte(30*(m/2)+(m%2)*10); while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); DMA_Cmd(DMA1_Channel2, DISABLE ); //??USART1 TX DMA1 ?????? DMA1_Channel2->CMAR = (uint32_t)&LCD_Table[10*m]; DMA_SetCurrDataCounter(DMA1_Channel2,10);//DMA???DMA????? DMA_Cmd(DMA1_Channel2, ENABLE); //??USART1 TX DMA1 ?????? if(m>=15) m= 0; else m++; }
void WriteChar(char data) { UART3_SendByte(data); }