0%

说明:

QEMU,它是一个开源的可执行硬件虚拟化的托管虚拟机,可以虚拟出甚至cortex A的开发板,提供必备的外设:串口等等,几乎可以实现在线学习arm开发,因此,在没有开发板的情况下,也可以玩转ARM。
开始前,那就得有环境呀,so,开始吧。

环境准备:

Oracle VM VirtualBox

Ubuntu20.04

阅读全文 »

说明:

根据官方文档操作试验,在调试时报了错误异常:rtthread.elf has exited with code 42…

官方参考:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/qemu-network/qemu_vscode/qemu_vscode?id=%e8%bf%90%e8%a1%8c%e5%92%8c%e8%b0%83%e8%af%95-rt-thread

在第五步时报了上面错误异常。解决办法修改launch.json文件

阅读全文 »

前言:

本笔记记录linux平台调用so动态库文件的示例,工程创建使用vs2019+visualGDB,这样的组合调试起来方便,开个LINUX虚拟机后,VS2019调试linux平台代码和windows平台调试程序没啥区别,就是算爽。

概念的东西就不罗嗦,直接演示过程。

阅读全文 »

前言:

前面写了串口通信时自定义协议的数据包设计与解析方法的笔记,笔记介绍三种方式,都在一个文件操作,觉得拆分为多文件为好,于是有了这篇文章。

代码目录结构如下图示:

注意:

文件名词之间下划线不能正常显示,很奇怪!

stm32_main.c代码如下:

阅读全文 »

前言:

前面写了篇串口通信时自定义协议的数据包设计与解析方法的笔记,那篇笔记介绍两种方式,觉得还能改进,于是有了这篇文章。主要介绍一下C语言中宏定义的应用技巧–代码生成器,姑且称作技巧吧!总之,这种方式有优点,也有缺点,各自取舍吧,其可以自动完成许多事情,防止出错概率,带来的缺点–可能可读性差点。

代码如下:

阅读全文 »

前言:

前面写了篇使用STM32的USB虚拟串口的笔记,既然通信口通了下面就要有数据交互,数据交互就要用到自定的协议,用于约束设备间的控制。比如:PC发一个数据包到STM32,STM32就要解析数据包,解析后根据协议约定执行相应的动作。直接贴代码就不作说明了,因为太简单。

代码如下:

阅读全文 »

前言:

之前,实现了STM32103的USB虚拟串口的功能,但是调试时发现当每次下载完程序后,需要重新插拔USB线,电脑端才能识别到,反复这样的操作很烦人。其实解决办法也很简单,就是让USB的两个管脚都保持几个毫秒的低电平即可…

阅读全文 »

参考:

https://www.jianshu.com/p/ea78bdd0551f/

前言:

写篇笔记,发布后,发现图片都没有显示出来,挺郁闷。查一下参考上面链接地址,在本地用markdownPAD2尝试一下,发现编辑时,右侧预览没有显示出图片,以为有问题,hexo s 启动本地服务后测试一下,发现浏览器里可以显示图片。那么hexo d发布后也应该可以显示,尝试后果然可以。
特记录一下…

阅读全文 »

参考:
https://blog.csdn.net/vonlycn/article/details/103280073

前言:

以前有块STM32的板子,想试试HAL库的功能,经典的点灯程序试验完毕。再搞个串口试验想,通过CUBEMX配置后,简单测试后发现从STM32串口乱码,即从STM32串口发送出来的数据,在PC端的串口调试助手一直乱码。

网络搜索一下,有说是板子晶振问题,这确实是乱码产生的一个因素。但是,经过仔细确认,我的板子不存在这个问题。经仔细看了原理图,是MINI板的问题,串口的RX,TX确实引出来了,但是没有232的电平转换,因此直接用杜邦线将排针上的RX,TX直接与PC的串口对应线连接是不能正确的,必须乱码!

总得通信起来吧,那就USB虚拟串口方式了,于是就有了这篇笔记。

阅读全文 »