完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文是基于stm32f103C8T6串口通信例程,介绍stm32cubeMX配置实现简单的串口通信(使用基于硬件抽象层的库函数版本)。
本文实验需要环境: 一、stm32开发环境: 1、安装Java环境 2、安装STM32cubeMX并导入stm32f1系列开发包 3、安装Keil μVision5并导入stm32f1系列开发包 4、jilink驱动 二、硬件设备 1、stm32f103c8t6开发板一块 2、jilink调试下载线一条(带USB转com) 3、母对母杜邦线多根 本文使用stm32cubeMX配置stm32f103c8t6的系统时钟使能、串口及GPIO等外设初始化: 如图所示: STM32cubeMX配置生成硬件初始化代码,设置串口波特率为115200,并在NVIC(中断控制器)中设置串口中断优先级。其他外设配置如:时钟树、GPIO、RCC及debug等,请看博主文章STM32cubeMX的使用。 时钟树配置如图: 中断使能及优先级配置如图: 打开代码工程文件,编译; 编写代码实现串口通信(发送/接收数据) 1、使用函数: HAL_UART_Receive_IT(&huart1,buf1,1)打开串口接收中断,并将接收数据存入buf1中。 2、在串口接收中断回调函数HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)中将buf1中的数据发送出去,并再次打开串口接收中断。 定义接收缓冲区 uint8_t buf1[10]; 打开串口接收中断,等待接收数据 HAL_UART_Receive_IT(&huart1,buf1,1); 编写中断回调函数,向串口返回接收的数据并翻转LED灯 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) // 中断回调函数{ HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13); //翻转LED HAL_UART_Transmit(&huart1,buf1,1,0); //将接收的数据返回串口 HAL_UART_Receive_IT(&huart1,buf1,1); //再次开启接收中断 } 通过以上步骤,编译代码,烧写到开发板中,使用串口助手即可监测代码效果 至此,基于stm32f103c8t6的串口通信已经实现。 附上本文所示例程的源码及博主本人操作高清视频:例程资源及操作视频 https://download.csdn.net/download/csdn_vipuser/11644256 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1767 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1069 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
728浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
567浏览 3评论
592浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 01:43 , Processed in 0.822807 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号