完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 eee382642521 于 2016-5-22 11:49 编辑
STM32F103部分系列的单片机总共有5个串口,分别是USART1,USART2,USART3和UART4,UART5. 一般情况下,USART1,USART2,USART3只要配置正确都是可以正常发送数据和接收数据的(中断或查询接收都可以)。但在使用UART4,UART5的时候,可能会遇到能正常发送数据,但不能进入中断的问题,那也就意味着不能通过中断来接收数据。如果在配置 的时候,把UART4,UART5的中断关闭,然后通过查询的方式去接收数据,通过调用 if(USART_GetFlagStatus(UART4, USART_FLAG_RXNE) != RESET)是可以接收数据的。 下面给出无法进入中断的解决方法。 原因:在启动代码中,比如startup_stm32f10x_md.s, 里面是没有关于UART4,UART5的初始化操作的。 解决:将启动文件选为startup_stm32f10x_hd.s(或者其他) 该文件中是有关于UART4,UART5的初始化操作的。或者在startup_stm32f10x_md.s文件中增加 UART4,UART5的初始化操作,但经过实验发现,仅仅增 加UART4,UART5的初始化是不够的。连带其他中断的初始化也同样要复制过来。其实就是把startup_stm32f10x_md.s变的跟 startup_stm32f10x_hd.s一样。 产生上述问题的根本原因: 在创建工程的时候,选择启动文件时,选择的启动文件选择错误。 STM32F103系列单片机中FLASH容量的对应关系如下: 16~32K LD 64K~128K MD 256~512K HD
|
|
相关推荐
|
|
你好我用的是STM32F103RCT6,我按照你说的,我检查了,启动文件是改为了startup——stm32f10x_hd.s,但是还是进不了中断,我串口的初始化程序我也检查了,没有问题啊。大佬能指点下么?
|
|
|
|
2272 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2083 浏览 3 评论
4708 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2229 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2773 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 13:49 , Processed in 0.719149 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号