标签:初始化 使能 USART UART stm32 InitStructure GPIO 固件
作为初学stm32的小白,下面我来介绍一下解决USART通信的最基本功能实现的编程思路。
对于stm32而言,时钟的使能是必不可少的,没有时钟的使能外设将无法正常运行,因此,我们要先进行时钟使能。
而USART串口的使用是借助GPIO的复用功能来实现的,比如USART1就是GPIO的PA9、PA10管进行复用来实现的功能,我们通过查阅技术手册可以得到它们需要配置的输出输入状态。
为了使数据被接收后立刻被读取,我们可以使用中断函数,即数据接收后引发中断响应,在中断响应函数中读取,然后再退出中断。
因此,编程的一般步骤为:
• 一、配置GPIO口及UART1口 (APB2, PA9, PA10管脚)
• 1. 使能Tx、Rx管脚对应的GPIO组时钟, RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx, ENABLE);
• 2.使能Tx、Rx管脚对应的UART时钟, RCC_APB2PeriphClockCmd(RCC_APB2Periph_ UARTx, ENABLE);
• 3. 定义一个GPIO初始化结构体型的变量和一个UART初始化结构体变量
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
• 4. 对GPIO初始化结构体变量的各成员赋值,设置GPIO为TX推挽复用输出模式,RX为浮空输入模式
GPIO_InitStructure.GPIO_Pin =;
GPIO_InitStructure.GPIO_Mode =;
GPIO_InitStructure.GPIO_Speed =;
• 5. 对UART初始化结构体变量各成员赋值,
USART_InitStructure.USART_BaudRate =;
USART_InitStructure.USART_WordLength =;
USART_InitStructure.USART_StopBits=;
USART_InitStructure.USART_Parity=;
USART_InitStructure.USART_Mode =
• 6. 调用初始化函数,初始化GPIO, GPIO_Init(GPIO_Pin_n,&GPIO_InitStructure);
• 7. 调用初始化函数,初始化UART, USART_Init(USARTx,&USART_InitStructure);
• 8. 配置串口中断优先级,使能串口中断,
NVIC_Configuration();
USART_ITConfig(DEBUG_USARTx, USART_IT_RXNE, ENABLE);
• 9. 使能串口,
USART_Cmd(DEBUG_USARTx, ENABLE);
• 二、编写UART中断程序: USART1_IRQHandler
• 三、在主函数中,完成其他功能编程。
标签:初始化,使能,USART,UART,stm32,InitStructure,GPIO,固件 来源: https://blog.csdn.net/qq_46523260/article/details/106878758
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。