嵌入式
朝闻道,夕死可以
这个作者很懒,什么都没留下…
展开
-
Linux shell脚本实现sftp文件目录下载
主要脚本代码如下,亲测可用,下载命令之前需要加sudo#!/bin/bash# 作者:zwa# 功能:下载数据到 本地目录# SFTP 配置信息# SFTP 帐号USER=jijian# SFTP 密码PASSWD=jj# SFTP目录SRC=/home/jijian# 下载到本地的目录DESC=/home/databackup# IPHOST=10.2.5.142# 端口PORT=22SRC_DIR=${SRC}$1DESC_DIR=${DESC}$1# 下载文原创 2022-03-11 14:21:24 · 3699 阅读 · 0 评论 -
Linux下用shell脚本实现sftp文件下载
亲测可用代码如下:#!/bin/bashUSER=jijian#密码PASSWORD=jj#下载文件目录SRCDIR=/home/databackup#FTP目录(待下载文件目录)DESDIR=/home/jijian#IPIP=10.2.5.142#端口PORT=22#需要下载的文件为fileNamefileName="1.txt"lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT}<<EOFcd ${DESDIR原创 2022-03-09 16:05:09 · 3774 阅读 · 2 评论 -
linux下用shell脚本实现sftp文件上传
先实现文件上传,文件下载过后在和大家分享。先把代码贴出来,亲测可用的,你们用需要改一些用户名,密码,待上传文件目录、sftp目录等。#!/bin/bash#SFTP配置信息#用户名USER=jijian#密码PASSWORD=jj#待上传文件根目录SRCDIR=/home/databackup#SFTP目录DESDIR=/home/jijian#IPIP=10.2.5.142#端口PORT=22#获取文件cd ${SRCDIR} ;#目录下的所有文件#FILES=`ls原创 2022-03-09 15:07:59 · 5271 阅读 · 0 评论 -
Linux 使用shell脚本实现文件上传
具体代码如下:######本地的/home/databackup to ftp服务器的/home/data#####!/bin/bashftp -n<<!open 10.2.5.172user test testbinaryhashcd /home/datalcd /home/databackuppromptmput *closebye!原创 2022-03-09 09:08:36 · 1539 阅读 · 0 评论 -
Linux下使用 shell 脚本实现ftp文件下载
最近从单片机转岗Linux,上级叫我熟悉下shell脚本,用shell脚本获取ftp上的文件,本节先介绍下载文件。单个下载文件脚本实现如下:运行环境:WSL####### ftp服务器上下载/home/data a.c to local /home/databackup####!/bin/bashftp -n<<!open 10.2.5.172user test testbinarycd /home/datalcd /home/databackuppromptget a.c原创 2022-03-08 16:57:26 · 2806 阅读 · 0 评论 -
gd32f130 G8U6RS485 实现串口接收数据
最近在实现lora通信网关的代码,用到了RS485实现串口接收数据,其主要代码及完整代码如下:RS485硬件初始化:/*串口1初始化*/void rs485_usart_init(){ rcu_periph_clock_enable(RCU_USART1); //使能串口时钟 usart_disable(USART1); usart_baudrate_set(USART1, baudrate); //波特率 usart_parity_config(USART1, p原创 2022-02-21 09:21:57 · 2040 阅读 · 1 评论 -
GD32 f130G8U6 RS485发送数据
最近在弄Lora 通信网关代码,用到了RS485发送接收数据,RS485半双工通信,芯片上有一发送接收使能引脚,PA8。高电平接收,低电平发送。RS485接收发送使能主要代码如下/*接收使能*/void rs485_receive_enable(){ gpio_bit_set(GPIOA, GPIO_PIN_8);}/*发送使能*/void rs485_send_enable(){ gpio_bit_reset(GPIOA, GPIO_PIN_8);}接下来是RS485硬件初原创 2022-02-18 09:31:48 · 7054 阅读 · 1 评论 -
stm32轮询接收字符串控制开关灯
即将放年假了,公司目前也没有什么事情是我可做的,便买了一块便宜的stm32板子重新系统学习单片机。目前学到了串口轮询接收字符串。主要代码如下:板子主控:stm32rct6,他们的库函数其实都差不多,适当修改下即可。主要实现代码如下:while(1) { if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE) == 1) //USART_FLAG_RXNE判断数据,== 1则有数据 { for(i=0;i<5;i++){ while(USAR原创 2022-01-26 11:03:25 · 4666 阅读 · 1 评论 -
stm32看门狗工作原理
一、为什么需要看门狗?在MCU微型计算机系统中,MCU运行程序很容易受到外界电磁场的干扰,从而造成程序运行错误甚至造成跑飞现象,从而陷入死循环,程序的正常运行被打乱,从而造成不可预料的严重后果,于是人们就设计了一款用于实时监测计算机运行状态的芯片,我们就将其称为看门狗。二、看门狗的作用看门狗会无时无刻的去喂狗,如果程序发生跑飞的现象,那么单片机程序就不能继续去喂狗,继而计数器计数到0,看门狗产生复位脉冲信号。单片机发生程序跑飞的现象才会产生一个复位脉冲强制单片机复位,从而使单片机正常运行。三、看门狗原创 2022-01-25 09:38:57 · 1249 阅读 · 1 评论 -
stm32F103 串口中断接收字符串总结
最近在弄单片机的串口,想使用单片机的中断接收字符串,在网上查阅资料,汇总了一下,单片机型号为stm32f103rct6,IDE为keil5版本。代码示例如下:首先是串口初始化:里面包含了GPIO、NVIC和USART初始化的结构体及设置。void MyUSART_Init(){ /* 定义GPIO、NVIC和USART初始化的结构体 */ GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; US原创 2022-01-20 14:35:33 · 6440 阅读 · 2 评论 -
stm32f103rct6串口接收字符控制LED闪烁
最近在学单片机的串口,首先从串口发送接收开始吧,串口发送比较简单,下面讲讲串口接收字符串的情况。单片机型号用的是 stm32f103rct6,IDE版本是keil 5。本代码是操作寄存器实现串口接收字符串。代码如下:#include "led.h"#include "delay.h"#include "sys.h"#include "usart.h" u8 i=0; int main(void) { u8 t; u8 len; u8 mark=0; delay_init();原创 2022-01-20 09:37:21 · 5930 阅读 · 3 评论 -
GD32F103C空闲中断加dma接收不定长字符串
最近再弄apm32串口中断接收字符串,在网上查了资料发现用空闲中断加DMA接收字符串比较好,自己研究了一下,整理了下,以备以后用得到首先是DMA配置,代码如下:void dma_config(void){ dma_parameter_struct dma_init_struct; rcu_periph_clock_enable(RCU_DMA0); /* deinitialize DMA channel4 (USART0 rx) */ dma_dei原创 2022-01-17 13:43:57 · 1155 阅读 · 1 评论 -
apm32串口发送字符串总结
最近在弄apm32,在弄串口发送接收字符串,之前在实习的时候弄过GD32,有点基础,要操作寄存器标志位,所用的库函数不大一样,方法是相同的。主要代码如下: for(i = 0; i < sizeof(txBuf); i++) { while(USART_ReadFlag(USART2, USART_FLAG_TXBE) == RESET); USART_TxData(USART2, txBuf[i]); }原创 2022-01-15 15:39:49 · 3216 阅读 · 0 评论 -
Source Insight 4.0安装
最近在用source Insight浏览代码,在网上找了下资源,现将sourceInsight4.0破解版本 发布如下:链接:https://pan.baidu.com/s/1vEodSZLAlfuGbPZrGD-ZUQ提取码:d460里面有一个sourceInsight.exe,替换掉文件夹下的.exe文件,在选择激活方式的第三个,找到文件夹下的.lic文件,便可破解成功。...原创 2021-11-12 15:42:35 · 527 阅读 · 1 评论 -
wsl安装 交叉编译工具链出错解决方法
参照以下博客:https://blog.csdn.net/wu10188/article/details/86542418https://www.freesion.com/article/9406988182/在输入下列命令:apt-get install lib32stdc++6 libc6:i386apt-get install g++#apt-get install libncurses5-devapt-get install lib32stdc++6 libc6:i386...原创 2021-10-27 13:41:03 · 293 阅读 · 0 评论 -
linux下文件解压、压缩命令
最近在工作中遇到了 文件解压命令,一直分不清是哪个命令。以下是文件格式解压、压缩命令:.tar.gz文件解压命令:tar -zxvf 压缩文件名.tar.gz例如下图的 tar -zxvf arm_linux_4.8.tar.gz压缩命令: tar -zcvf 压缩文件名 .tar.gz 被压缩文件名例如下图的 tar-zcvf arm_linux_4.8.tar.gz arm_linux_4.8/...原创 2021-10-20 09:17:50 · 1178 阅读 · 0 评论 -
C语言堆栈、队列代码的两种实现
栈,线性表的一种特殊的存储结构。与学习过的线性表的不同之处在于栈在于栈只能从表的固定一端对数据进行插入和删除操作,另一端是封死的。栈的“先进后出”原则使用栈存储数据元素,对数据元素的“存”和“取”有严格的规定,数据按一定的顺序存储到栈中,当需要调取栈中某数据元素,需要将该数据元素之后进栈的先出栈,该数据元素才能从栈中提取出来。栈操作数据元素的方法栈操作数据元素只有两种动作:1、数据元素用栈的数据结构存储起来,称为入栈,也叫压栈。2、数据元素由于某种原因需要从栈结构中提取出来,称为出栈,也叫弹栈原创 2021-08-05 15:38:50 · 457 阅读 · 0 评论 -
C语言基础之杨辉三角demo实现
杨辉三角含义在初中,我们就知道杨辉三角的两个腰边的数都为1,其它的位置数都是上顶上两个数之和。这就是我们用C语言写杨辉三角的关键之一。首先定义一个二维数组,arr[]N[N],略大于打印的行数,再令两边的数为1,即当每行的第一个数和最后一个数为1。 for(i=1;i<=n;i++) a[i][1] = a[i][i] = 1; /*两边的数令它为1,因为现在循环从1开始,就认为a[i][1]为第一个数*/除两边的数外,任何一个数上为上两顶数之和,即a[i][j]=a[i原创 2021-07-08 14:10:23 · 436 阅读 · 5 评论 -
GD32串口接收字符串总结
GD32串口怎么接收字符串这个问题在之前困扰了我很长时间,可以通过轮询和中断两种方式,轮询主要代码如下:/*! \file main.c \brief USART printf demo*//* Copyright (C) 2017 GigaDevice 2017-06-23, V1.0.0, demo for GD32F30x*/#include "gd32f30x.h"#include "gd32f303c_eval.h"#include "syst转载 2021-05-07 09:47:12 · 2470 阅读 · 0 评论 -
GD32用IO口模拟呼吸灯
“呼吸灯”其实就是小灯的亮度是逐渐变化的,也就是说,只要能够使用单片机控制小灯的亮度,“呼吸灯”的效果也就实现了。使用C语言控制单片机IO交替输出高低电平,实现LED小灯的闪烁效果。核心代码如下:while(1){ P20 = 0; delay(10); P20 = 1; delay(10); }IO输出的高低电平持续时间都是10个单位,一个完整的周期内,LED小灯的亮灭时间都是相等的。由此可见,使用单片机控制小灯亮度,就是控制转载 2021-04-29 19:24:21 · 1546 阅读 · 0 评论 -
GD32串口接收发送数据总结
在使用GD32串口接收数据的过程中,遇到了数据无法接收的问题,在导师的帮助下,需要调用usart_flag_get函数来使RBNE置1,RBNE:读数据时缓冲区非空,当数据缓存区接收到来自移位寄存器的数据时,该位置1. 0:读数据缓存区为空, 1:读数据缓存区不为空。主要代码如下:while(1) { delay_1ms(400); gd_eval_led_on(LED3); delay_1ms(400); gd_eval_led原创 2021-04-26 16:59:25 · 9462 阅读 · 0 评论 -
GD32 ADC功能及代码详解
最近实习,接触到的板子是GD32,是国产兆易的,在学习裸机的ADC例程,期间学习到了好多知识。也很后悔在学校里没有深入学习这些东西。导致在工作中遇到很多问题。ADC是模数转换器,这个不用说了,大家都知道。具有12位分辨率。它一共有18个通道,16个外部通道,两个内部通道。各种通道的AD转换可以配置成单次、连续、扫描或间断转换模式。接下来讲解下这些转换模式的区别。单次转换模式每次转换都要触发,单通道,先触发规则通道,在采样,在转换。如下图所示。连续转换模式只第一次触发,之后就不停的转换按着顺序,逐原创 2021-04-21 16:37:15 · 12617 阅读 · 3 评论 -
嵌入式学习笔记汇总
已经实习了将近一个月了,也该进行知识的总结了。借此总结巩固一下自己所获取的知识点。RT-Thread 系统邮箱可用于进程间通信定义静态邮箱struct rt_mailbox static_inb ;定义动态邮箱rt_mailbox_t dynamic_mb ;消息队列RT-Thread常用的线程间通信方式。软件定时器软件定时器是由操作系统提供的一类系统接口;软件定时器使系统提供不受数目限制的定时器服务RT-Thread操作系统提供的软件定时器,以系统节拍的时间长度为定时单位,提供了基于原创 2021-04-13 17:47:01 · 421 阅读 · 0 评论 -
RT-Thread 创建线程、实现生产者、消费者模式
生于忧患,死于安乐。时间过的真快,去年在实习的时候,我觉得我还是挺认真的,那时候岗位不对口,一心想着做嵌入式,自学了不少。现在如愿做了嵌入式,却很少做总结了。也没有当初做嵌入式的那种热血了。还是不能堕落呀。接下来进入正题。先写一个demo,创建两个线程,一个线程获取并发送按键响应,另一个线程实现led灯的切换。主要代码如下:#include <rtthread.h>#include <board.h>#include <rtdevice.h>#define LE原创 2021-04-12 18:47:54 · 354 阅读 · 0 评论 -
RT-Thread嵌入式实时操作系统详解
最近在公司实习,在导师的指导下,在学习RT-Thread,之前接触过一点Freertos,也是实时操作系统。裸机系统main函数里面顺序执行的无限循环(while(1)),cpu按顺序完成各种事情。多线程系统把整个系统分割成一个个独立的无法返回的函数。RT-Thread (Real Time-Thread)嵌入式实时多线程操作系统。支持多任务同时运行。多线程cpu在同时干多件事,线程主动切换。系统调度在就绪列表中寻找优先级最高的就绪线程。临界段一段在执行的时候不能被中断的代码段。RT原创 2021-03-21 10:23:01 · 1849 阅读 · 0 评论 -
树莓派火灾报警模块总结
火灾报警这一模块比较好实现,也是意料之中的事情。用到了以下模块:火焰传感器、树莓、继电器、蜂鸣器。接线如下图:代码如下:#include <stdio.h>#include <string.h>#include <wiringPi.h>#include <wiringSerial.h>#include <unistd.h>#define SWITCH 7#define SWITCH2 22int initwiringPi原创 2021-02-08 16:10:17 · 2079 阅读 · 0 评论 -
自身技能总结篇
目前已经大四了,明年毕业就成了应届毕业生了。这段时间也在疯狂的做项目,弥补自身的不足。觉得不能眼高手低,要清楚了解自己会什么,掌握了哪些技能。让企业能看到自身的价值,这才是重中之重。总不能别人问你会什么,你不知道自己会什么,没有总结。没有方向、目标的努力也是可怕的。一、Linux方向1、熟悉掌握Linux常用操作命令2、会smaba共享服务器的搭建3、懂得交叉编译4、熟悉linux嵌入式操作系统平台编程,掌握了多线程、多进程、信号量等操作系统基础知识5、掌握c语言编程,熟悉ubuntu 开发工具原创 2020-12-22 13:59:48 · 341 阅读 · 0 评论 -
stm32指纹、蓝牙识别门禁系统项目详解
摘要本着做stm32项目的初心,在11月份中旬便开始着手了这个项目的开展,如今已经12月份下旬了,也是将近一个多月了。也算是接近项目的尾声了,在这段时间,学到了不少东西,记录下来,也算是对自己的一个交代吧。项目物料清单项目物料清单很重要,在做项目的前期,找了一些资料,大部分都是没有物料清单的,这其实让项目很难继续进行下去的。没有资料更是不可能做项目的,任何人都是如此,凭空做项目除非之前有了相关的经验。物料清单如下:1、主控板:stm32f103c8t6最小系统板2、oled显示屏(七针spi)3原创 2020-12-21 14:33:27 · 5547 阅读 · 12 评论 -
OPenCV的概念详解及入门
OPenCV的概念详解及入门文章目录OPenCV的概念详解及入门摘要一、OpenCV的概念和结构二、一些常用的函数显示图像三、小试牛刀-------对一张图片进行变换摘要 不知在哪里看到OPenCV和嵌入式也是相关的,心中一直是这样想的,只要和嵌入式相关,都想了解一些,哪怕只是一点基础的概念。抱着这样的想法是可以学到不少知识的。一、OpenCV的概念和结构OpenCV:开源的计算机视觉库,一般用C和C++编写OpenCV的结构共分为五个部分,分别是图像处理和视觉算法(CV)、机器学习原创 2020-08-24 22:32:29 · 1490 阅读 · 1 评论 -
uCOS 、uCOS-II嵌入式实时操作系统内核概念详解
uCOS介绍uC/OS是uC/OS-II的前身,最早出自1992年美国嵌入式系统专家Jean J.Labross在《嵌入式系统编程》杂志的5月和6月刊登的文章连载,并把uC/OS的源码发布在该杂志的BBS上。绝大部分代码是C语言写的,CPU硬件相关部分是用汇编语言写的。为的是便于移植到任何一种其它的CPU上。用户只要用标准的ANSI的C交叉编译器、有汇编器、连接器等软件工具,就可以将uCos-II嵌入到开发的产品中。uC/OS-II具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。uC/OS-原创 2020-08-06 22:48:09 · 1050 阅读 · 0 评论 -
实习经历篇四之油烟主板(Y1)及传感器(T1)板子烧录测试过程详解
摘要时间过得真快,想当初在家还在考虑如何找到实习企业,转眼实习已经快一个月了,干一行,爱一行。公司氛围、老板都还行,对新来的员工也是很照顾,技术也是愿意分享的。这一点是我非常敬佩的。也是老板赏识,做好属于自己的事情吧。当初三月份写博客的初心也是巩固一下自己的知识吧,在自己忘记的时候也可以看一下,还是坚持自己的初心,不忘初心吧。任务昨天还有今天,收获还是蛮大的。公司做的智能油烟监控系统还是和嵌入式蛮相关的。所谓嵌入式,就是嵌入到装置或设备具有特定功能的计算机系统。任务是将Y1还有T1程序烧录到板子里、用原创 2020-07-23 23:27:57 · 896 阅读 · 0 评论 -
实习经历总结篇三
公司产品Y3SQ-ILM-Y3智能油烟监控主机(Y3),Y3集成了GPRS无线通信模块,通过传感器T1实时监测管道油烟数据,并实时上传SQ-ILM-P1智能监控平台。上传方式:GPRS无线通信。通信方式:TCP通信。GPRS模块硬件设计主要由嵌入TCP/IP的单片机(MSC1210Y5)、GPRS模块,SIM卡座、外部接口和扩展数据存储器等部分组成。MSC1210Y5控制GPRS模块接收和发送信息,通过标准RS232串口和外部控制器(比如数据采集端)进行数据通信,用软件实现中断,完成数据转发。1.通原创 2020-07-15 22:48:33 · 219 阅读 · 0 评论