让我解释什么是串口的话我也解释不全面,还是看看百度百科怎么说吧!!!
串行接口
简称串口
,也称串行通信
接口或串行通讯接口
(通常指COM接口
),是采用串行通信方式的扩展接口。串行接口
(Serial Interface) 是指数据一位一位地顺序传送,其特点是通信
简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
串口通信具体数据传输也是大家都熟悉的协议,什么起始位,,数据位,奇偶校验位,停止位等等。这些我们了解就行了。具体使用的话会用就可以了。其实最重要的就是知道怎么配置串口的初始化参数。
我刚开始学的时候就只会配置串口初始化程序,之后该干什么就完全不知道了。其实还是c语言功底不行,有c语言基础的话对于构架编程结构还是很容易的,初学者只能是多看程序,看多了也就知道写程序的步骤了。不能急于求成,还得是日积月累。而且我觉得还是得拿项目来实践,因为项目具有真实性,这样你在学习的时候就有目标了,根据项目所需要的知识来一步一步了解,这样的学习方法才具有高效率。
接下来我就把串口配置的初始化程序拿出来,对于初学的我来说,只能写出这么多,还需一步一步努力。
串口初始化程序:
void USART_Init(u32 bound)
{
GPIO_InitTypeDef GPIO_InitStructure
UART_InitTypeDef UART_InitStructure
NVIC_InitTypeDef NVIC_InitStructure
RCC_APB2PeriphClockCmd(RCC_APB2Periph_UART1|RCC_APB2Pe riph_GPIOA,ENABLE)
UART_DeInit(UART1)
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9
GPIO_InitStruCture.GPIO_Speed=GPIO_Speed_50Mhz
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP
GPIO_Init(&GPIOA,GPIO_InitStructure)
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING
GPIO_Init(&GPIOA,GPIO_InitStructure)
NVIC_InitStructure.NVIC_IRQChannel=UART1_IRQn
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3
NVIC_InitStructure.NVIC_IRQChannelSubPriority=3
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE
NVIV_Init(&NVIC_InitStructure)
UART_InitSrtucture.UART_BoundRate=bound
UART_InitStructure.UART_WordLength=UART_WordLength_8b
UART_InitStructure.UART_StopBits=UART_StopBits_1
UART_InitStructure.UART_Parity=UART_Parity_No
UART_InitStructure.UART_HardwareFlowConrtol=UART_HardwareFlowConrtol_None
UART_InitStructure.UART_Mode=UART_Mode_Rx|UART_Mode_Tx
UART_Init(UART1,&UART_InitStructure)
UART_ITConfig(UART1,UART_IT_RXNE,ENABLE)
UART_Cmd(UART1,ENABLE)
}