- 博客(11)
- 收藏
- 关注
原创 Luat实现uart串口通信
-- 模块功能:串口收发,串口初始化,关闭串口-- @需要使用合宙官方lib-- @作者 wangjiaw 983893384@qq.com-- @版本 20210227-- @修改记录1 20210227require "utils"require "pm"module(..., package.seeall)-- 函数功能:初始化串口-- @传入参数:串口id(number),波特率(number)-- @默认数据位8,无校验,停止位1,消息通知,消息上报function Uar
2021-03-09 11:06:03 2175
原创 Luat实现socket tcp通信
以下代码需要在luat通信模块中使用建立连接后无法主动关闭,只能靠断网关闭或者服务器端关闭-- 模块功能:TCP连接,报文收发-- @需要使用合宙官方lib-- @作者 wangjiaw 983893384@qq.com-- @版本 20210309-- @修改记录1 20210309require "socket"module(..., package.seeall)-- 函数功能:创建tcp任务,实现tcp连接,报文收发-- @传入参数:服务器ip,端口,tcp报文发送队列,tcp
2021-03-09 10:49:38 658
原创 记录一个luat使用全局变量的坑,全局变量指针被局部重置
这是全局变量被定义的位置main.lua--自定义的全局变量UartRecvQueue = {}这是全局变量被使用的位置uart.lua--串口接收数据帧并把数据帧插入到接收队列中uart.on(UART_ID, "receive", function(uid, length) recvStr = recvStr .. uart.read(uid, length) if string.sub(recvStr, #recvStr, #recvStr) == string.cha
2021-02-27 08:39:09 470
原创 Luat Socket 发送16进制和string
本文希望阐述的问题在lua中处理 string 与 hex(十六进制数) 的思维转换背景luat在处理通信的时候,总会设计到数据处理,例如:socket:sendsocket:recvspi.sendspi.recvuart.write这些方法要么发送的string,要么返回string, 而不是使用其他编程语言的byte[]/char[], 因为lua没有byte和char什么是hex先看hex的表现形式字符串"1" 的 ASCII码是 0x31字符串"2" 的 ASCII码是
2021-02-22 09:50:48 1598
原创 stm32串口使用DMA模式接收发送数据
stm32串口使用DMA模式接收发送数据在cubeMX中调整DMA相关设置在DMA Setting里点击Add添加USART1_TX,Mode有两种模式,一种是普通模式,使用一次发送语句就发一次;另一种是循环模式,使用一次发送会一直发送。这里发送我选择普通模式,接收选择循环模式。省略之前串口相关设置,想了解的可以看我之前串口的相关文章生成代码,定义相关变量#define RXBUFFERSIZE 256 //最大接收字节数char RxBuffer[RXBUFFERSIZE
2021-02-20 11:28:02 3193 5
原创 Keil5中文乱码问题以及cubeMX重新生成代码导致中文注释乱码问题的解决方法
Keil5中文乱码问题以及cubeMX重新生成代码导致中文注释乱码问题的解决方法点击edit——>Configuration——>设置编辑器为utf-8编码打开高级系统设置,在环境变量的系统变量中添加如下变量JAVA_TOOL_OPTIONS-Dfile.encoding=UTF-8...
2021-02-20 09:59:21 2138 1
原创 STM32基于cubeMX实现定时器点灯
概述STM32的常见的定时器资源: 系统嘀嗒定时器SysTick、看门狗定时器WatchDog、实时时钟RTC、基本定时器、通用定时器、高级定时器。系统嘀嗒定时器SysTick :这是一个集成在Cortex M3内核当中的定时器,它并不属于芯片厂商的外设,也就是说使用ARM内核的不同厂商,都拥有基本结构相同的系统定时器。主要目的是给RTOS提供时钟节拍做时间基准。基本定时器:TIM6、TIM7。通用定时器:TIM2、TIM3、TIM4、TIM5。在基本定时器的基础上,实现输出比较、输入捕获、PWM生
2021-02-20 09:26:41 495
原创 STM32实现串口通信
使用cubeMX创建工程,调整串口相关设置本文章继承之前的点灯实验,有些设置做了简略,其他设置请参考点灯实验文章1点击USATR12设置MODE为异步通信(Asynchronous)3基础参数:波特率为115200 Bits/s。传输数据长度为8 Bit。奇偶检验无,停止位1 接收和发送都使能4GPIO引脚设置 USART1_RX/USART_TX5 NVIC Settings 一栏使能接收中断生成代码后打开工程通过串口发送数据uint8_t buf[] = "test\n";
2021-02-19 14:14:24 371
原创 C语言实现字符串分割
标题#include <stdio.h>#include <stdlib.h>#include <string.h>char ReceiveGPSData[100];char *GPSDataSpilt[20];int DataLen;char buf[]="$PDTINFO,UM220,G1B1,V4.1,R3.0Build13260,080101000001,000101114303845";void split(char *src,const c
2021-02-19 09:58:22 908
原创 STM32+cubeMX第一个工程,点亮LED
STM32+cubeMX第一个工程,点亮LED打开cubeMX选择new project创建一个stm32工程,芯片选择stm32f103c8t6设置HSE时钟来源为外部晶振<><>设置系统Debug接口为串口<><><><>设置时钟树<><><><>设置工程名,存储位置,开发工具<><><><>
2021-02-10 12:56:06 788
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人