stm32串口配置过程

上传人:第*** 文档编号:31083265 上传时间:2018-02-04 格式:DOC 页数:4 大小:38KB
返回 下载 相关 举报
stm32串口配置过程_第1页
第1页 / 共4页
stm32串口配置过程_第2页
第2页 / 共4页
stm32串口配置过程_第3页
第3页 / 共4页
stm32串口配置过程_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《stm32串口配置过程》由会员分享,可在线阅读,更多相关《stm32串口配置过程(4页珍藏版)》请在金锄头文库上搜索。

1、串口配置过程1,配置 IO/ 设置 Tx 引脚为推拉输出模式,推拉式输出级既提高电路的负载能力,又提高开关速度GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_2;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_Init(GPIOA, / 设置 Rx 引脚GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_3;GPIO_InitStru

2、cture.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA, 2,配置 UARTvoid USART3_Configuration(void)USART_InitTypeDef USART_InitStructure;USART_InitStructure.USART_BaudRate = 115200; /设置波特率 速度越快,传输时间越短,要注意 /所用设备的波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b; /*数据长度=8 位*/USART_InitStruct

3、ure.USART_StopBits = USART_StopBits_1; /*一个停止位*/USART_InitStructure.USART_Parity = USART_Parity_No; /*无奇偶校验*/USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; /*非硬件流控制*/USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx; /*允许接收和发送*/若只是接受则只要 USART_Mode_Rx 就可以

4、 USART_Init(USART3, /*开始时发送中断不开*/ USART_ITConfig(USART3, USART_IT_TXE, ENABLE); USART_ITConfig(USART3,USART_IT_CTS, DISABLE);/这个明白是什么意思?- USART_IT_CTS: CTS 改变中断 (对于 UART4 和 UART5 无法使用) * - USART_IT_LBD: LIN 间隔侦测中断* - USART_IT_TXE: 发送寄存器空中断* - USART_IT_TC: 发送完成中断* - USART_IT_RXNE: 接收寄存器全满中断* - USART_

5、IT_IDLE: IDLE 线性中断* - USART_IT_PE: 奇偶错误中断* - USART_IT_ERR: 错误中断(桢错误, 噪声错误, 超速错误)可以看一下汉化固件库USART_ITConfig(USART3, USART_IT_RXNE, ENABLE); /*使能串口*/USART_Cmd(USART3, ENABLE); /使能串口3, 打开串口时钟void RCC_Configuration(void) / 启动 USART1 的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); /注意各串口所对应的时钟源不/

6、一样;Uart1 用的是 APB2Uart2 用的是 APB1Uart3 用的是 APB14,配置 NVIC在 void NVIC_Configuration(void) 中使能串口中断,同时要设置中断的优先级。优先级设置时候要保证不能重复/* 使能 USART1 中断 */NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; /此处的数

7、字不能重复,需要中断优先级 /高的应设置数字小一点NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; /使能串口中断NVIC_Init(5,在中断向量表 app_vetc_v5 .c 中加入串口中断在中断向量表中加入USART1_IRQHandler, / 直接进入方式;6,在 中断函数中 USART1_IRQHandler, 写入中断函数/* Function Name : USART3_IRQHandler* Description : This function handles USART3 global interrupt request.* I

8、nput : None* Output : None* Return : None*/void USART3_IRQHandler(void)StackSave(); /保存系统临界环境;OS_CPU_SR cpu_sr;CPU_CRITICAL_ENTER(); OSIntNesting+;CPU_CRITICAL_EXIT(); unsigned char k=0,buf1=0; if (USART_GetITStatus(USART3,USART_IT_RXNE) (2)USART_IT:指明要检测的 USART 中断源.* 这个参数可以是下面的值之一 :* - USART_IT_CTS

9、: CTS 改变中断 (对于 UART4 和 UART5 无法使用)* - USART_IT_LBD: LIN 间隔侦测中断* - USART_IT_TXE: 发送寄存器空中断* - USART_IT_TC: 发送完成中断* - USART_IT_RXNE: 接收寄存器全满中断* - USART_IT_IDLE: IDLE 线性中断* - USART_IT_ORE: 超速错误中断* - USART_IT_NE: 噪声错误中断* - USART_IT_FE: 桢错误中断* - USART_IT_PE: 奇偶错误中断buf1 = USART_ReceiveData(USART3); /当连续发送多

10、个数时 BUF1 中只存了最后一个命令USART_ClearITPendingBit(USART3,USART_FLAG_TC); * 功能描述: 清除 USARTx 中断挂起位* 输入参数: (1)USARTx: 选择 USART 或者 UART 的外围设备.* 这个参数可以是下面的值之一 :* - USART1, USART2, USART3, UART4 or UART5.* (2)USART_IT:指明要被清除的中断挂起位.* 这个参数可以是下面的值之一:* - USART_IT_CTS: CTS 改变中断 (对于 UART4 和 UART5 无法使用)* - USART_IT_LBD

11、: LIN 间隔侦测中断* - USART_IT_TC: 发送完成中断. * - USART_IT_RXNE: 接收寄存器全满中断.* * Notes:* - PE (奇偶校验错误), FE (桢错误), NE ( 噪声错误),* ORE (过速错误) 和 IDLE (找到空闲线)挂起位 * 被软件按顺序清除: 一个读 USART_SR 寄存器操作 (USART_GetFlagStatus())* 接着一个读 USART_DR 寄存器操作 (USART_ReceiveData().* - RXNE 挂起位也可以被一个读 USART_DR 寄存器操作清除(USART_ReceiveData().* - TC 挂起位也可以被软件按顺序清除: 一个读 USART_SR 寄存器操作(USART_GetFlagStatus())* 接着一个读 USART_DR 寄存器操作 (USART_ReceiveData(). * - TXE 挂起位置可以被一个写 USART_DR 寄存器清除(USART_SendData(). USART_ClearFlag(USART3,USART_FLAG_TC);/清除中断标志 OSIntExit(); /系统中断退出StackRestore(); /恢复 系统临界环境;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号