STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085的问题讨论:http://www.rt-thread.org/phpBB3/topic2577.html, STM32串口只发送数据,不能接收数据的问题讨论:http://www.rt-thread.org/phpBB3/topic2577-10.html…
原文:WPF内实现与串口发送数据和接收数据 与串口发送数据和接收数据,在此作一个简单的Demo.此Demo可以实现按下硬件按钮,灯亮,发送灯状态数据过来.并且可以实现几个灯同时亮,发送灯的状态数据过来.PC端实现点击按钮让硬件灯亮. 此处为4个灯,发送过来的数据:0代表暗,1代表亮.列如:1010代表1号灯和3号灯亮,2号和4号灯暗. 发送过去的数据:0代表1号灯亮,1代表1号灯灭.2代表2号灯亮,3代表2号灯灭.4代表3号灯亮,5代表3号灯灭.6代表4号灯亮,7代表4号灯灭. 布局代码: <G…
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9490616.html 本文用的是VS2013MFC写串口数据接收: 第一步:首先建立一个MFC工程,成功后会跳出一个对话框,直接在对话框上点击右键->点击插入ACTIVAE控件->选择MicrosoftCommunications Control, version 6.0 成功后会显示一个电话的图标在对话框上,运行起来不会显示的 不用担心这个美观问题.如果没有这个插件的话,可能是版本太低 …
串口通讯例程 通过上面的练习,对STM32项目开发有了一个直观印象,接下来尝试对串口RS232进行操作. 1.   目标需求: 开机打开串口1,侦听上位机(使用电脑串口测试软件)发送的信息,然后原样输送到串口1. 2.   创建项目 a)   禁用Finsh和console b)   默认情况下,项目文件包含了finsh,它使用COM1来通讯,另外,console输出(rt_kprintf)也使用了COM1.因此,在运行scons命令生成项目文件之前,修改rtconfig.h,禁用这两项.(下图…
打开设备的函数参数要与注册设备函数参数要一致, 注册设备的函数及其参数如下: /* register UART1 device */ rt_hw_serial_register(&serial1, "uart1", RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_DMA_RX, uart); #endif /* RT_USING_UART1 */ 打开设备函数及其参数如下: rt_device_open(…
Hello China操作系统移植指南 首先说明一下,为了适应更多的文化背景,对Hello China操作系统的名字做了修改,修改为"Hello X",或者连接在一起,写为"HelloX".其中X是不固定的,可以根据具体应用的国家,甚至城市,进行定制化.比如在中国,我仍然会叫做"Hello China",但是如果有人在美国使用了,则可以叫做"Hello USA",在香港使用了,可以叫做"Hello Hongkong&…
一.移植准备 开发版STM32F10xC8T6 准备好移植RT-Thread的移植工程 没动手移植过RT-Thread的小伙伴,可以看RT-Thread移植到stm32 我这里是将控制台信息打印到串口的,所以需要确认RT-Thread可以将控制台信息通过串口输出.有疑问的话可以看我之前的文章,RTThread 重定义rt_hw_console_output函数. 控制台能正常打印信息后,如下图所示: 二.移植FinSH源码 在项目中添加finsh源码 FinSH 源码位于 components/…
前言:之前ROS跟单片机的底层通讯主要是通过串口自定的协议来做,比如官网提供的arduino串口驱动一样,需要ROS往下发一个指令,单片机再回传一个指令,要写一大堆的协议,这样很麻烦,效率也比较低, 想着如果stm32也能像ROS一样,进行订阅发布,不去管其中的协议那样就方便多了,基于这种想法,于是乎查了很多资料,发现了一个大神做了类似的工作:http://blog.csdn.net/wubaobao1993/article/details/70808959 具体就是移植了ros_lib,里面居…
"STM32F103VET6<_>FreeRTOS" 1.项目功能实现 1)LED灯定时闪烁 2)KEY按键检测 3)FreeRTOS任务创建 4)串口输出程序运行状态 2.软件代码实现 1)LED灯初始化代码 1 1 #ifndef __BSP_LED_H 2 2 #define __BSP_LED_H 3 3 4 4 /*---------------------------宏定义-----------------------------*/ 5 5 6 6 #defi…
本文以stm32f4xx平台介绍串口驱动,主要目的是:1.RTT中如何编写中断处理程序:2.如何编写RTT设备驱动接口代码:3.了解串行设备的常见处理机制.所涉及的主要源码文件有:驱动框架文件(usart.c,usart.h),底层硬件驱动文件(serial.c,serial.h).应用串口设备驱动时,需要在rtconfig.h中宏定义#define RT_USING_SERIAL. 一.RTT的设备驱动程序概述 编写uart的驱动程序,首先需要了解RTT的设备框架,这里以usart的驱动来具体…
前言: 由于项目的原因,需要在LPC1788(STM32 cortex-M3)上面跑contiki. 之前没有涉及到contiki,不知其为何物.不过这个不是难事,做IT的,每每遇到新事物,都不会处理,习惯了从无到有的过程就好了. 开始老师说这个系统很好移植,于是想在网上找现成的资料.无奈,关于contiki的资料少的可怜,contiki移植就更少了,有几篇也是互相copy而来的,连图片都没有改,呵呵.于是不得不自己动手,从头开始搞移植了. 操作系统:windowsXP 开发环境:MDK 目标板…
U8g2图形库 简介 U8g2 是一个用于嵌入式设备的简易图形库,可以在多种 OLED 和 LCD 屏幕上,支持包括 SSD1306 等多种类型的底层驱动,并可以很方便地移植到 Arduino .树莓派.NodeMCU 和 ARM 上. U8g2 库同时包含了 U8x8 绘图库,两者的区别为: U8g2 包含各种简单及复杂图形的绘制,并支持各种形式的字体,但需要占用一定单片机的内存作为绘图缓存 U8x8 只包含简单的显示文本功能,且只支持简单.定宽的字体.它直接绘制图形,没有缓存功能 U8g2…
写一个程序,用到了ucos ii ,串口在中断中接收数据(一包数据 8个字节 包含: 1byte包头 5byte数据 1byte校验和 1byte 包尾 ) ,数据由上位机每隔500ms发送一次,在串口中断中接收1byte数据放到数组Rev_dat[8]中并判断,直到接收到包尾后进行校验和判断 , 如果数据正确后 把接收到的数据存到另外一个数组B中 ,然后发送消息量给任务A ,任务A接收到消息量进行判断,如果在一定时间内没有接收到消息量就启动任务C,接收到了消息量的话,再发送消息量给任务B ,由…
最近在做智能家居,物联网项目,用到了C下的contiki移植 经过一阵调试,终于在 STM32F407移植contiki2.6后使用LWIP库实现tcp client. 一路艰辛谁人知道....唯有留下代码以资青春 #include "main.h" #include "contiki.h" #include "sys\autostart.h" void led_init(); #define SYSTEMTICK_PERIOD_MS 10 #d…
https://blog.csdn.net/stm32_newlearner/article/details/88095944 stm32   移植usb驱动开发 单片机 STM32单片机和51单片机 由ST厂商推出的STM32系列单片机,…
硬件:stm32f103cbt6 软件:STM32F10x_StdPeriph_Lib_V3.5.0 文章目录 头文件 USART3_DR的地址 DMA的通道 DMA的中断 USART接收回调函数 头文件源码 DMA的基本配置 环形队列接收数据 函数原型 参考用例 DMA,直接内存存取,类似用它的双手释放CPU的灵魂,所以,本文通过USART3进行串口收发,接受使用DMA的方式,无需CPU进行干预,当接受完成之后,数据可以直接从内存的缓冲区读取,从而减少了CPU的压力. 具体的代码实现如下: u…
本实验基于正点原子stm32f4探索者板子 请移步我的RT Thread论坛帖子. https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=422726&page=1&extra=#pid469704 下一步有多个选项: 1.精读生成的keil工程代码                                  2.可在此基础上去使用文件系统,参考文章:                                …
/*****************************************************************************************************  * @brief: LDC1000应用程序  * _____________ _______________  * |PB4(SSI2CLK) ----> SCLK|  * |PB5(SSI2FSS) ----> CSB |  * |PB6(SSI2RX)    <----    …
最近在做一个有关高铁模拟仓显示系统的客户端程序,在这个程序中要运用串口serialPort传输数据,因为每次接收数据结束后要更新UI界面,所以就用到了的Invoke,将更新UI的程序代码封装到一个方法中,然后通过Incoke调用,程序跑起来没有任何问题,但是当你执行serialPort.close()是程序就会发生死锁,整个程序卡在那里动都动不了.上网查了很多资料,有各种这样的说法,有的说定义一个接收数据的标志,如果在执行关闭程序是进行判断,如果数据接收完了就关闭串口,没有的话继续执行,但是经过…
串口通信是经常使用到的功能,在STM32中UART具有DMA功能,并且收发都可以使用DMA,使用DMA发送基本上大家不会遇到什么问题,因为发送的时候会告知DMA发送的数据长度,DMA按照发送的长度直接发送就OK了,但是使用DMA接收时候就不同了,因为有时候数据接收并不是每一次都是定长的,但是DMA只在接收数据长度和设定数据长度相同的时候才可以触发中断,告诉MCU数据接收完毕,针对这个问题,解决方法如下,有一点复杂,但是很管用. UART在传输一个字节的时候,首先拉低,传输起始位,然后在是LSB…
1.首先应公司要求再 com 口本来使用 .net 由于 .net 适用 linux 太麻烦 改为java 准备工作 准备 RXTXconmm.jar(版本很重要) 因为版本问题我搞了一天. 主要讲述linux 系统使用串口(windows 比 linux 更简单) 话不多说直接上代码 @RequestMapping(value = "/porttest",method ={RequestMethod.POST,RequestMethod.GET}) @ResponseBody pub…
最近项目有一个空气检测仪,需要得到空气检测仪的实时数据,保存到数据库当中.根据了解得到,硬件是通过rs485进行串口通讯的,需要发送16进制命令给仪器,然后通过轮询来得到数据. 需要先要下载RXTX的jar包,win64位下载地址:http://pan.baidu.com/s/1o6zLmTc):将解压后的rxtxParallel.dll和rxtxSerial.dll两个文件放在%JAVA_HOME%/jre/bin目录下,这样该包才能被正常的加载和调用. 代码如下: package com.g…
代码功能说明:1.向串口助手发送十六进制数据:0X01,0X03,0X00,0X00,0X00,0X01,0X84,0X0A: 2.用串口助手向代码发送数据,并将发送过来的数据保存在数据库中,按数据和保存数据形式保存到数据库中. 代码如下: import serial,pymysql,threading,time x=serial.Serial('com1',9600,timeout=1) def faSong(): # 发送函数 while True: # 循环发送数据 time.sleep(…
类:QSerialPort 例程:Examples\Qt-5.9.1\serialport\terminal,该例子完美展示了qt串口收发过程,直接在这上面修改就可以得到自己的串口软件.核心方法 //读串口QByteArray QSerialPort::readAll()//写串口qint64 QSerialPort::write(const QByteArray &data)1234注意事项:qt默认最大支持115200波特率,可以通过修改Qt5.9.1\5.9.1\msvc2013_64\i…
摘要:Linux下串口编程遇到的接收数据错误及原因 来源:https://dotblogs.com.tw/k/2012/07/24/73572 近日在调试串口的时候发现,另一设备向我ARM板的串口发送0x0d,我接收之后变成了0x0a,这是问题一:另外当对方向我发送一串数据,如果其中有0x11,那么我总是漏收此数,这是问题二. 由于问题莫名其妙,以为是笔记本的USB转232线缆的问题,换,问题依旧. 以为是对方设备的问题,采用串口调试助手模拟通讯设备与ARM板通讯,问题依旧. 无奈才去查看资料,…
串口调试助手vc源程序及其详细编写过程   目次: 1.建立项目 2.在项目中插入MSComm控件 3.利用ClassWizard定义CMSComm类控制变量 4.在对话框中添加控件 5.添加串口事件消息处理函数OnComm() 6.打开和设置串口参数 7.发送数据 8.发送十六进制字符 9.在接收框中以十六进制显示 10.如何设置自动发送 11.什么是VARIANT数据类型?如何使用VARIANT数据类型? 1.建立项目:打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest…
方法1: 使 用缓存机制完成.首先通过定义一个成员变量List<byte> buffer = new List<byte> (4096);用来存放所有的数据,在接收函数里,通过buffer.AddRange()方法不断地将接收到的数据加入到buffer中,并同时对 buffer中的数据进行检验,如果达到一定的长度并且校验结果正确(校验方法在发送方和接收方一致),再进行处理.具体代码如下:代码 private List<byte> buffer = new List<…
参考地址:https://blog.csdn.net/memgxingfeixiang/article/details/52513970  https://blog.csdn.net/kevin_iot/article/details/53926599 一.需求概述    应用场景:winform中能接收到串口发送的数据. 所需软件: Configure Virtual Serial Port Driver(虚拟串口模拟软件).串口调试助手. 二.效果展示(很简陋,捂脸中......)    说…
新唐NDA102EC1中更改UUART1作为调试串口打印输出调试信息 参考网上STM32修改fputc(int ch, FILE *f),把串口打印函数printf()重定向到UUART1模块的端口输出,最终未成功. 但循着类似解决问题的思路,直接在工程中查找有关printf()函数和fputc()函数的定义位置. 最终发现printf()函数在stdio.h头文件中定义,属于标准C的定义,无价值... 发现fputc()函数在retarget.c文件中定义: int fputc(int ch,…
hp 电脑重装后 所有软件都装不上问题 装了近100来次机,第一次遇到这样的. bug描述: 新笔记本刚装了纯净版的64位旗舰版win7,想装软件,就弹出已停止工作.比如装火狐浏览器,弹出火狐浏览器网络安装包已停止工作,装搜狗输入法,提示安装程序已停止工作兼容性右键管理员运行都试过了不行,请问怎么解决这个问题...除了网卡驱动用驱动精灵装上以后,其他所有的驱动用驱动精灵都提示安装包已损坏,不然就是已停止工作... 问题解决: 参考一: http://tieba.baidu.com/p/22037…