引言 在第一章博客中,我们讲了Arduino对Esp32的一个环境配置,以及了解到了常用的一个总线通讯协议,其中有SPI,IIC,UART等,今天我为大家带来UART串口通讯和c#串口进行通讯的一个案例,以及什么是中断,中断的作用和实践,话不多说,让我们正式开始. UART 在第一篇博客中,我们讲了UART是需要一个接收一个发送的引脚,总共两个,分别是TXD(发送引脚),RXD(接收引脚),不管是什么类型的单片机串口引脚都是这两个,可能有的是少了最后面的那个D,但是都是一样的东西,在ESP32的…
引言 各位大佬,晚上好啊,在上一篇博客中,我们讲了什么是UART串口通讯,以及使用USB转TTL使得单片机可以和c#上位机做一个串口通讯,接下来,为大家带来PWM的概念原理,以及实际案例,使用PWM对电机进行速度调制,因为本课程的最后是做一个红外遥控的智能小车,所以是需要电机四个,驱动四个,轮胎四个,所以PWM对于最后的成果也是极为重要,并且在实际开发中,PWM也是比较常用的调速方式. 概念 PWM全称Pulse width modulation,中文翻译为脉冲宽度调制,其基本原理为控制方式就是…
UART  : university asynchronous receiver and transmitter UART  // 通用异步接收器和发送器 为什么要有串口:因为许多嵌入式设备没有显示屏,无法获得设备的实事数据信息,所以可以通过 UART 串口和超级终端相连,打印嵌入式设备输出信息.也可以通过串口跟踪和调试. 比如设备: 网络路由器.交换机通过串口配置, GPS接收器通过串口输出GPS接收的数据. 1.异步通信技术:发送和接收方没有同步时钟,只有数据线,但是协商好了协议,(固定频率…
问题描述:在一个头文件a.h中定义一些变量x,在其他.c文件中(b.c,c.c)要用到.用一般的全局变量的方法,编译时总是提示error:multiple definition of x 问题分析:orz,我找了好久,具体原因到现在还不知道,只是有人说全局变量的定义不要放在头文件里面.看来回头要好好学习一下基础了. 解决方法:1.给每一个头文件加上条件编译:注:此方法不是解决上述问题的方法,只是解决multiple definition of的一个方法.当多个文件包含同一个头文件时,而头文件中没…
日期:2016-05-25 最近开发过程中发现一个问题,使用两个开发板进行can网通讯,按照经验来说,通讯的速度应该是很快的,项目中将接口的超时时间设置为100ms,在某种情境下,会在短时间内发送多次请求,例如连续点击多次按钮,每次点击都发送一次can数据,此时就会出现超时的报告,纠结了很长时间,排除了各种问题,一直没解决. 今天偶然的一个念头,看见工程里面有许多测试用的log日志,使用了qdebug和str::cerr两种方式打印的,看着太多太烦,就挨个注释掉了,然后,奇迹发生了,竟然不在出现…
将pc上交叉编译完成的可执行文件hello,通过串口传输到开发板上后,执行./hello显示 /bin/sh: ./hello: Permission denied 解决方案:在开发板上执行  chmod u+x hello,然后,就解决了…
从2015.11.13日开始接触arm开发板,开始学习Qt,到现在已经四个月零17天了,从一个拿到开发板一无所知的小白,到现在能够在开发板上进行开发,有付出有收获. 之前一直没有时间将这个过程中的一些开发笔记整理出来,现在终于有点时间,从现在开始,每天抽出一点时间,将开发过程中遇到的一些问题,整理出来,以随笔的形式进行记录,一方面将开发的过程记录下来,方便以后进行查看,另一方法给网上其他朋友一个参考,防防止其他朋友走过多的弯路. 2016.03.30…
header: #ifndef SENDCANMSGTHREAD_H#define SENDCANMSGTHREAD_H #include <QThread>#include "can/canUtils.h"#include <QTime>#include <iostream> class SendCanMsgThread : public QThread{ Q_OBJECTpublic: SendCanMsgThread(); ~SendCanMs…
先记录一下代码 一:先将指针释放掉,在显示对话框 void MainWindow::canResponseError(SendCanMsgThread *sendCanMsgThread ){ std::cerr<<" canResponseError "<<std::endl; delete sendCanMsgThread; sendCanMsgThread = NULL; QMessageBox msgBox; msgBox.setText("C…
声明:本次教程主要适用于已经习得一门编程语言的程序员.想要学习第二门语言.有梦想,立志做全栈攻城狮的你 . 如果是小白,也可以学习本教程.不过可能有些困难.如有问题在文章下方进行讨论.或者添加QQ群538742639.群马上就满了,名额不多. 这是高级程序员快速入门Python语言课程.助你快速学习Python语言.这是第三课. 程序员带你十天快速入门Python,玩转电脑软件开发(一) 程序员带你十天快速入门Python,玩转电脑软件开发(二) 因技术知识连贯性,还没有学习前两课的同学,建议点…