- 博客(28)
- 资源 (16)
- 收藏
- 关注
原创 阿里云oss c-sdk交叉编译移植
君正T41平台 阿里云oss c-sdk交叉编译移植,包括依赖库openssl、curl、apr、mxml等移植
2023-07-19 17:48:52
1405
原创 嵌入式面试题二
嵌入式面试题二嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环?方法一:for(;;) { }说明:这两个;; 空语句,编译器一般会优掉的,直接进入死循环。方法二:while(1) { }说明:每循环一次都要判断常量1是不是等于零,在这里while比for多做了这点事,不过从汇编的角度来说,都是一样的代码。方法二:第三个方案是用 gotoLoop:…goto Loop;...
2020-07-27 14:50:56
315
原创 Linux多定时器实现
一、setitimer函数1. 头文件#include <sys/time.h>2. 函数原型int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value);which参数说明:ITIMER_REAL:给一个指定的时间间隔,按照实际的时间来减少这个计数,当时间间隔为0的时候发出SIGALRM信号;ITIMER_VIRTUA.
2020-07-25 15:24:03
1776
1
原创 条件编译使用方法
一、 如下,如果 标识符 被#define过, 编译器编译代码段1, 否则编译代码段2#ifdef 标识符代码段1#else代码段2#endif //条件编译结束的语句Eg:判断TEST_T是否被定义,下面demo中TEST_T已被定义,所以打印“代码段1”#include <stdio.h>#define TEST_T int main(void){#ifdef TEST_T printf("代码段1\n");#else pr
2020-07-25 14:54:13
529
原创 Ubuntu安装截图工具Shutter及使用(同时可对图片进行编辑)
一、安装Shutter工具1、添加安装包软件源sudo add-apt-repository ppa:shutter/ppa2、更新源并安装Shuttersudo apt-get updatesudo apt-get install shutter3、搜索shutter可看到是否安装成功二、设置快捷键1、打开系统设置2、打开keyborad键盘设置...
2019-07-09 14:31:46
1729
原创 Ubuntu下安装7z以及解压文件方式
1、安装方式:在线安装sudo apt-get install p7zip-full2、解压方式 解压命令:7z x filename.7z -r -o./test 命令说明: ① 7z 解压缩文件命令 ② x 表示解压缩 ③ ...
2019-05-14 10:50:05
6182
原创 GBK与UNICODE编码互转
对经常玩单片机的人员来说都知道怎样通过软件制作GBK字库,再使用GBK公式计算处理在LCD屏上显示中文汉字,如果不知道GBK制作软件及方式的话可以通过文末链接下载学习;这里主要是介绍UNICODE与GBK的相互转化,在一些应用场景可能只有UNICODE编码然后中文形式显示在LCD屏上,这时可能需要转换为GBK编码。GBK与UNICODE没有直接对应的关系,通过查表方式将两者联系起来,具体实...
2019-04-11 15:10:05
5969
原创 gdb调试和gdbserver远程调试
Linux下GDB调试工具使用一、gcc编译器的常用选项 使用 GCC 编译器的时候,我们必须给出一系列必要的调用参数和文件名称。GCC 编译器的调用参数大约有100 多个,这里只介绍其中最基本、最常用的参数。GCC 最基本的用法∶ gcc [参数] [文件名称]常用的参数如下-c 只编译:不链接成为可执行文件,编译器只是由输入的.c 等源代码文件生成.o 为后缀的目标文件,通常 用...
2019-04-11 10:02:28
4155
原创 嵌入式面试题总结一
/************************************1**********************************************/int a[4]={1,2,3,4}; // a:数组首元素的首地址,即 a[0]; &a:数组的首地址 int *ptr=(int*)(&a+1); // a+1:数组的下一元素的首地址,即 a[1...
2018-10-11 17:10:56
839
原创 物联网-云开发(Tlink云、机智云、百度云、阿里云等)
目前市面上可以供使用的云平台有很多,TLink,YeeLink(停止服务),机智云,阿里云、氦氪云、深智云、百度云、青莲云、云智易、易微联、涂鸦云、传感云、中移物联、乐为物联等。其中对开发者比较开放的要属 TLink 和机智云;这里介绍下Tlink和百度云,有关机智云和阿里云资料可以通过下面链接下载Tlink源码:https://download.youkuaiyun.com/download/zdw68...
2018-09-20 20:33:28
10221
2
原创 STM32CubeMx-ADC
本章通过两个例程介绍STM32的模数转换器(ADC),第一个通过ADC采集内部温度传感器通道电压,然后得出MCU内部温度。第二个通过DMA的方式采集两个ADC通道电压。1.ADC本章程序在串口printf工程的基础上修改,复制串口printf的工程,修改文件夹名。击xxx.ioc打开STM32cubeMX的工程文件重新配置。ADC1外设选择温度传感器通道。ADC1配置如下,选择默认...
2018-09-09 20:43:22
12704
3
原创 STM32Cube-直接存储器访问(DMA)
在USART章节讲解了串口的轮询和中断模式,这一章介绍一下通过DMA模式控制串口传输。直接存储器访问 (DMA) 用于在外设与存储器之间以及存储器与存储器之间提供高速数据传输。可以在无需任何 CPU 操作的情况下通过 DMA 快速移动数据。这样节省的 CPU 资源可供其它操作使用。说白了DMA就是一个搬运工,将数据从一个地方搬到另一个地方而不需要CPU处理。作为一个搬运工,要他正常工作必须...
2018-09-09 16:39:20
1322
原创 STM32Cube-USART
本章以串口为例讲解,HAL 库轮询,中断,DMA 三种编程模型。1.前情回顾 在串行通信中,一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束。在进行传输之前,双方一定要使用同一个波特率设置。波特率就是每秒钟传输的数据位数。 常用的两种基本串行通信方式包括同步通信和异步通信。我们通常使用的是异步通信.异步通...
2018-09-09 15:38:51
4662
1
原创 STM32Cube开发-PWM
上一章我们讲解了定时器的基本应用,以及定时器中断。这一章我们讲解通过定时器控制管脚输出PWM信号,控制LED实现呼吸灯。1. PWM简介脉冲宽度调制(PWM),是英文“ Pulse Width Modulation” 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制, PWM 原理如图所示: 上图就是一个简单的 P...
2018-09-08 21:21:34
5387
2
原创 STM32Cube-定时器中断
stm32的定时器功能非常强大,包括基本定时器,通用定时器以及高级定时器。 本章介绍定时器的基本应用,通过定时器中断控制LED闪烁,间隔1s.这一章我们在前一章GPIO的工程修改。复制GPIO的工程,修改文件夹名。点XXX.ioc击打开STM32cubeMX的工程文件重新配置。开启定时器TIM3,选择内部时钟。另外,关于HAL库API的使用方法可以到ST官网下载:https://www.s...
2018-09-08 17:30:11
7523
原创 STM32Cube-EXTI
这一章用上一章GPIO的工程修改。复制GPIO的工程,修改文件夹名。点击xxxx.ioc打开STM32cubeMX的工程文件重新配置。PA0管脚重新配置为GPIO_EXIT0模式。WAKEUP按键已经外部下拉,按下是PA0为高电平。在GPIO配置中配置PA0为上升沿触发。内部下拉,添加用户标签WAKEUP。 在NVIC(嵌套向量中断控制器)中,勾选EXIT Line0 int...
2018-09-07 21:53:32
1119
原创 STM32Cube-按键控制LED
STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列。平台包括了STM32Cube 硬件抽象层(一个STM32抽象层嵌入式软件,确保在STM32系列最大化的便携性)和一套的中间件组件(RTOS, USB, FatFs, TCP/IP, Graphics, 等等).直观的STM32微控制器的选择和时钟树配置微控制器图形化配置外围设备和中间件的功能模式和初始化参数C代码生成项目覆...
2018-09-07 20:34:26
9048
2
原创 STM32-ADC
1、12 位 ADC 是一种逐次逼近型模拟数字转换器。它有多达 18 个通道,可测量 16 个外部和 2 个内部信号源。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。 ADC 的结果可以左对齐或右对齐方式存储在16 位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC 的输入时钟不得超过 14MHz,它是由 PCLK2 经分频产生。...
2018-09-03 16:16:20
1514
原创 基于Linux下TCP/IP协议局域网聊天室
这两天写了聊天室,基于Linux下TCP/IP协议局域网聊天,可实现聊天、上下线提醒、在线列表、文件传输。服务器 server.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h&...
2018-08-01 17:22:50
2045
2
原创 数据结构-单链表建立
顺序表是一组连续的存储单元来依次存储线性表中的结点,而链表是用一组任意的存储单元来存放线性表中的结点,这组存储单元可不连续分布在内存中的任何位置上。因此,链表中结点的逻辑顺序与存储顺序不一定相同。为了体现各结点存储单元之间的逻辑关系,再存储每个结点的同时,还必须存储与之联系的相邻结点的地址信息,这个信息称为指针或链。在C语言中,可以用指针实现。根据不同的链接方式,链表可以分为单链表,循环链表和双向...
2018-06-06 21:41:06
12331
2
原创 数据结构-顺序表
顺序表是最简单最自然的存储方法,它是将顺序表中的结点按逻辑顺序依次存放在一组地址连续的存储单元中,也就是说,顺序表的逻辑顺序与物理顺序是一致的。一般情况下,顺序表中的所有结点的类型是相同的,也就是说每个结点所占的空间是相同的。设结点所占的空间大小为L,如果顺序表中有n个结点(顺序表的长度为n),则顺序表所占空间大小为n*L。但是由于顺序表中的结点数是不确定的,其内存空间也不确定,因此可事先分配一个...
2018-06-06 17:33:58
1558
原创 基于STM32-按键输入与八种IO口模式
按键检测使用到 GPIO 外设的基本输入功能, 按键机械触点断开、闭合时,由于触点的弹性作用,按键开关不会马上稳定接通或一下子断开,使用按键时会产生图 中的带波纹信号,需要用软件消抖处理滤波,不方便输入检测。这里再讲下八种IO口模式:1.模拟输入 我认为模拟输入最重要的一点就是。他不经过输入数据寄存器,所以我们无法通过读取输入数据寄存器来获取模拟输入的值,我认为这一点也是非常好理解的,由于输入数据...
2018-06-06 15:43:10
9606
原创 sizeof与strlen的区别
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值...
2018-06-03 15:45:27
173
原创 摆动排序
给你一个没有排序的数组,请将原数组就地重新排列满足如下性质:nums[0] <= nums[1] >= nums[2] <= nums[3]....请写一个函数实现此排序功能。 注意事项:请就地排序数组,也就是不需要额外数组格式:输入第一行输入一个带排序的数组nums,最后输出按照要求排序后的数组序列。样例输入nums = [ 3,5,2,1,6,4 ] 样例输出[ 1,6,2,...
2018-06-03 15:21:29
711
原创 K数和
给定 n 个不同的正整数,整数 k(k < = n)以及一个目标数字。在这 n 个数里面找出 k 个数,使得这 k 个数的和等于目标数字,写一个函数实现找到不同的方案的数量。格式:输入第一行输入一个整数数组,第二行输入一个整数 k ,第三行输入一个整数 target最后输出使得数组中不同的 k 个数的和为 target 的种类。样例输入[ 1,2,3,4 ]k = 2target = 5样例...
2018-06-03 15:15:18
598
原创 基于STM32-蜂鸣器
1.蜂鸣器蜂鸣器是一种发声设备,被广泛用于计算机、打印机、复印机、报警器、电子玩具等。后面介绍定时器是会给大家说说利用蜂鸣器实现歌曲演奏。蜂鸣器分为有源蜂鸣器和无源蜂鸣器。那么什么是有源,什么是无源呢?这里的有源不是指电源的“源”,而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路,一通电就会发声;无源蜂鸣器则没有自带震荡电路,必须外部提供 2~5Khz 左右的方波驱动才能发声。 2.硬件介绍这里...
2018-06-01 13:09:42
30259
3
原创 基于STM32-跑马灯实现
我学习M3有一段时间,第一次写博客,通过博客分享自己学习的经验跟大家探讨同时提高自己对M3的认识。相信大家初学时第一个实验就是实现跑马灯,这里我就介绍下跑马灯的实现。1.首先讲下GPIOGPIO—general purpose intput output是通用输入输出端口的简称,简单来说就是软件可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能...
2018-06-01 09:38:23
14279
1
STM32Cube-按键控制LED
2018-09-07
智能家用安防系统
2018-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人