cubeMX生成串口程序遇到的坑!!!

运行环境:system workbean +STM32芯片

这是一个菜鸟小白转型cubeMX开发时遇到的故事!

对于刚接触cubeMX的小白来说,想必第一个调试的外设,必然是串口吧!下面就由我讲述一下,我在转型路上遇到的坑。

开启串口引脚功能后,由于需要使用到中断,所以便在NVIC选项卡中,开启了中断,想了一想,感觉没有什么问题,于是果断上程序,跑板子!(注意:如果设置了串口功能,又没有在interrupt table中看到相应的串口配置的话,那就要注意show only enable interrupts了)

调试运行,结果压根没有进入到中断函数中。带着一脸懵逼的表情,我有打开了cubeMX,结果睿智的我,马上就发现了问题。在code generation发现了串口配置,果断的能了再说。感觉这次应该没问题了,再次上鸡。

调试运行,依然没有进入串口中断。这是你麻痹什么情况!看来只能求助于百度大佬了。

在百度大佬的帮助下,原来,cubeMX只是板我们开启了串口总中断,具体自己是要开启接受中断还是什么中断的,这个还是需要自己再次开启,于是,在初始化完成之后,加入     __HAL_UART_ENABLE_IT(&huart2,UART_IT_RXNE);    这样便开启了串口2 的中断了!!!

调试运行,现在总算可以进入中断了,事情发展到这里,这个问题算是解决了!!!

不过,在百度的过程中,还发现了一个更加牛逼的函数!!!

HAL_UART_Receive_IT( &huart2 , RxdBuff, Rxdsize);

嗯,就是这个,这个函数的功能是,开启数据接受中断,将数据存储到自定义缓冲区中,这个功能在实际项目中还是很实用的。下面演示一下,这个功能的实现!

定义缓冲区

调用此函数

此代码用于将接收到的串口数据,进行回传

注意这行代码,注释了这行代码,会导致只能接收一个缓冲区数据

huart2.pRxBuffPtr -= (Rxdsize -huart2.RxXferCount); //将接收指针放回到开始,否则会一直增加哦


  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
在完成STM32毕设时,我遇到了以下问题,并采取了相应的解决方法: 1. 硬件问题:在使用STM32进行开发时,可能遇到链接问题、电路板问题等。为解决此类问题,我首先仔细检查硬件连接是否正确,确保电路板和外部组件的连接与原理图一致。如果还不能解决问题,我会咨询同学或教师,或者通过查找相关论坛和文档来寻求帮助。 2. 软件问题:在使用STM32 CubeMX生成底层代码时,可能会遇到生成的代码不完全符合需求的情况。针对这个问题,我会修改生成的代码,添加必要的功能和调整参数。此外,我会参考官方文档、教程和其他开发者的经验,以便更好地理解和解决软件问题。 3. 调试问题:在调试期间,可能会出现程序运行不正常、功能不完善等问题。为了解决这些问题,我会使用调试工具(如ST-Link)进行调试,并利用串口打印功能来输出程序运行状态和调试信息。同时,我会将问题细化为较小的部分,分步骤进行调试,以确定问题出现的具体位置和原因。 4. 编程问题:在编写代码时,可能会遇到语法错误、逻辑错误等。为了解决这些问题,我会仔细检查代码,使用IDE提供的代码分析工具查找并修复错误。此外,我还会参考相关资料和其他开发者的经验,以确保代码的正确性和可靠性。 5. 学习问题:对于不熟悉的知识或技术,可能需要学习和提升自己的能力。我的解决方法是通过阅读相关文档、教材和参考书籍,观看在线教程和视频,参加培训班等来学习和理解相关知识。此外,我也会积极参与相关的论坛和社区,与其他开发者进行交流和学习。 总之,解决STM32毕设中遇到的问题需要耐心、勤奋和持续学习的态度。通过仔细检查硬件连接、修改代码、调试程序等方法,我能够解决并克服遇到的问题,最终顺利完成了毕设任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值