回帖(1)
2022-2-14 10:29:26
一、配置MCU
(1) 、文件--新建项目--选择自己所用的MCU类型、接着配置RCC时钟,都选外部晶振。
(2)、配置时钟频率(这里配置为180M)
二、配置串口的参数、
(1)、选使用的串口、串口模式。
(2)、选串口的输入、输出脚、这里配置PA9 .PA10
(3)、波特率中断NVIC。
第四步、配置NVIC优先级及生成自动中断服务函数。
(1)、选项卡 NVIC的优先级及勾选中断使能。
(2)、选项卡-Code generation的生成1、中断初始化 2、中断处理函数 3、中断回调函数。
第四、生成KEIL项目文件。
(1)PROJECT选项配置,编译环境的这里选KEIL V5.0(我的机子上安装的是KEIL 2.0)
(2)、Code Generator 选项卡的配置。
第五步 、测试串口1发送数据 。只加入两行代码就可以用串口1发送数据。
第六步、串口1发送数据成功。
第七步、测试串口1接收数据。
(1).开启了中断才会执行中断函数。
__HAL_UART_ENABLE_IT(&huart1,UART_IT_RXNE);//开启串口1的中断使能(大开关) HAL_UART_Receive_IT(&huart1,aRxBuffer,RxXferCount); //开启接收串口1中断,注意每接收完一次 // 要重新开启 才,接收完成。 以上两行代码:::》》》只有开启了 1.串口1总中断, 2. 串口1接收中断。
========== 以下是执行流程图过程,执行完========================
(2)、通过stm32f7xx_it.c找到自带的原回调函数,定位到串口1的接收回调方法中。并复制到MAIN.C中
(3)、复制到MAIN.C中,这里的HAL_UART_RxCpltCallback方法就无效了。
(4)、当串口1每接收到有1字符过来时,就会执行串口1的接收中断函数USART1_IRQHandler, 执行完后会去判断HAL_UART_Receive_IT(&huart1,aRxBuffer,RxXferCount)的RxXferCount值是否为0,
为0时就会执行接收回调函数HAL_UART_RxCpltCallback。。
一、配置MCU
(1) 、文件--新建项目--选择自己所用的MCU类型、接着配置RCC时钟,都选外部晶振。
(2)、配置时钟频率(这里配置为180M)
二、配置串口的参数、
(1)、选使用的串口、串口模式。
(2)、选串口的输入、输出脚、这里配置PA9 .PA10
(3)、波特率中断NVIC。
第四步、配置NVIC优先级及生成自动中断服务函数。
(1)、选项卡 NVIC的优先级及勾选中断使能。
(2)、选项卡-Code generation的生成1、中断初始化 2、中断处理函数 3、中断回调函数。
第四、生成KEIL项目文件。
(1)PROJECT选项配置,编译环境的这里选KEIL V5.0(我的机子上安装的是KEIL 2.0)
(2)、Code Generator 选项卡的配置。
第五步 、测试串口1发送数据 。只加入两行代码就可以用串口1发送数据。
第六步、串口1发送数据成功。
第七步、测试串口1接收数据。
(1).开启了中断才会执行中断函数。
__HAL_UART_ENABLE_IT(&huart1,UART_IT_RXNE);//开启串口1的中断使能(大开关) HAL_UART_Receive_IT(&huart1,aRxBuffer,RxXferCount); //开启接收串口1中断,注意每接收完一次 // 要重新开启 才,接收完成。 以上两行代码:::》》》只有开启了 1.串口1总中断, 2. 串口1接收中断。
========== 以下是执行流程图过程,执行完========================
(2)、通过stm32f7xx_it.c找到自带的原回调函数,定位到串口1的接收回调方法中。并复制到MAIN.C中
(3)、复制到MAIN.C中,这里的HAL_UART_RxCpltCallback方法就无效了。
(4)、当串口1每接收到有1字符过来时,就会执行串口1的接收中断函数USART1_IRQHandler, 执行完后会去判断HAL_UART_Receive_IT(&huart1,aRxBuffer,RxXferCount)的RxXferCount值是否为0,
为0时就会执行接收回调函数HAL_UART_RxCpltCallback。。
举报
更多回帖