自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (5)
  • 收藏
  • 关注

原创 2020-12-30

读取stm32的ID和flash容量已经将读取STM32的操作封装成函数,可以方便的对STM32的ID进行读取只需要在main函数中使用如下四句话即可 char flash[10] = {0};char cpuid[25] = {0};read_cpu_flash(flash);read_cpu_id(cpuid); 下面是具体实现,请注意//不同型号的STM32单片机的地址可能不同//请注意查看数据手册电子签名部分,在头文件中对宏定义作出对应的修改//本例..

2020-12-30 17:20:02 131

原创 QT打包程序

在windows下打包QT程序一、把构建选项切换为release二、在工程目录下(源码根目录)放一个格式为.ico的图片转换网址:http://www.zuohaotu.com/image-to-ico.aspx直接改后缀名不行三、在pro文件中加入图片路径四、windeployqt命令...

2020-08-01 18:14:50 235

原创 09、linux下配置环境变量的常用方式(C基础)

在linux终端中使用env命令可以直接查看当前的环境变量第一种方式:在中断中直接使用export命令来进行配置:export PATH=/home/htt/mysql/bin:$PATH 或者PATH在前面,$PATH表示原先的PATH环境变量的值,每一个路径之间使用冒号分开export PATH=$PATH:/home/htt/mysql/bin生效时间:立即生效 生效期限:当前终端有效,窗口关闭后无效 生效范围:仅对当前用户有效 配置的环境变量中不要忘了加上原来的配置,即$PA

2020-07-24 20:28:58 178

原创 08、静态库和动态库的制作和使用(C基础)

linux环境静态库的制作和使用:这里我们示例多文件的打包成静态库,首先建立4个文件(add_sub.c add_sub.h mul_div.c mul_div.h)在建立一个main.c静态库的制作命令及步骤:(静态库的命名 lib文件名.a )1、将所有要加入静态库的源文件编译成目标文件例如:gcc -c add_sub.c mul_div.c2、将要加入静态库的所有目标文件打包到静态库文件中例如:ar -cr libcalc.a *.o-cc..

2020-07-24 17:18:58 218

原创 07、常用排序算法(C基础)

这里简单总结一下常用的排序算法:1、冒泡排序:两个数比较大小,较大的数下沉,较小的数冒起来。比较相邻的两个数据,如果第二个数小,就交换位置。 从后向前两两比较,一直到比较最前两个数据。最终最小数被交换到起始的位置,这样第一个最小数的位置就排好了。 继续重复上述过程,依次将第2.3...n-1个最小数排好位置。比如对这个数组进行排序第一次循环换呢4和5进行比较[4,5],7,3,2,1 不用交换4,[5,7],3,2,1 不用交换4,5,[7,3],2,1 7比3大,交换

2020-07-23 21:27:07 90

原创 05、递归使用(C基础)

首先什么是递归呢?程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。递归

2020-07-20 22:34:36 331

原创 06、函数指针和回调函数(C基础)

先来说一下函数指针的几种使用方式:第一种,比如我们定义两个相加的函数,定义一个函数指针语法 返回类型(* 起一个名字)(参数类型,。。。)int add(int x,int y){ return x+y;}int main(){ int (*p_func)(int,int) = add; int res = p_func(1,2); printf("res = %d\n",res); return 0;}第二种:使用typedef

2020-07-20 19:46:24 96

原创 04、格式化输入输出(C基础)

printf格式化输出:有关占位符的介绍请参考另一篇文章https://mp.csdn.net/console/editor/html/107450334①%:表示格式说明的起始符号,不可缺少。②-:有-表示左对齐输出,如省略表示右对齐输出。③0:有0表示指定空位填0,如省略表示指定空位不填。④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。⑤l或h:l对整型指long型,对实型指double型。h用于将整

2020-07-20 16:22:26 372

原创 03、运算符(C基础)

一、sizeof运算符计算一个数据类型的大小ex: int a = 1; sizeof(a)//结果就是4(不同的操作系统不一样)计算一个数组的个数int arr[] = {1,2,3,4,5};int num = sizeof(arr)/sizeof(arr[0]); //结果是5计算自定义数据类型的数组大小,也是一样的ex: typedef struct { int id; char name[10];

2020-07-20 15:05:10 155

原创 02、占位符、运算符优先级(C基础)

C语言中基本数据类型对应的占位符:首先先简单的做一下总结:char<<-------------------------->>%c(显示字符)或者%hhd(显示数字)unsigned char<<----------------->>%c或者%hhuint main(){ char a = 97; //两个%%表示输出一个% printf("%%c = %c,%%hhd = %hhd",a,a); //%c =

2020-07-20 09:45:56 375

转载 原码,反码,补码

原码,反码,补码         本文从原码讲起。通过简述原码,反码和补码存在的作用,加深对补码的认识。力争让你对补码的概念不再局限于:负数的补码等于反码加一。接触过计算机或电子信息相关课程的同学,应该都或多或少看过补码这哥仨。每次都是在课本的最前几页,来上这么一段:什么反码是原码除符

2020-07-20 09:31:53 512 1

原创 01、linux基础命令(C基础)

命令1、clear 清除终端里的文字信息2、pwd 用来查看当前目录的位置3、cd 用来设置当前目录的位置 4、ls 查看目录里的而内容 ex:ls 目录路径(省略路径查看当前目录的内容) 选项:-a选项查看所有的内容(包含隐藏文件) -l查看每个项目的详细信息(以列表形式查看文件,不包含隐藏文件) 可以合并成-al选项 -lh...

2020-07-19 16:37:08 396

原创 QT使用MQTT连接onenet等物联网平台

以前已将使用python和java连接onenet的物联网平台,最近帮朋友做一个电表的管理界面,使用MQTT协议进行数据的传输,由于QT中没有直接支持MQTT协议,在这里记录一下MQTT在QT中的使用细则,需要的朋友也可以直接按照步骤操作,就可以了。第一步:首先需要下载MQTT的源码,下载地址为:https://github.com/emqx/qmqtt为了避免以后源码升级可能造成的不兼容问题,我会在文章的最后放一份我这次使用的源码。第二步:下载源码之后进行解压,点击qmq...

2020-07-16 10:34:53 5288 19

原创 STM32的IIC存储和读取整形数据

STM32的IIC存储和读取整形数据,下面的程序代码是使用stm32F03ZET6的I2C1(PB6,PB7)和AT24C02的EEPROM来测试的。希望对于需要的朋友有帮助。主要代码如下:#include "delay.h"#include "stm32f10x.h"#include "usart.h"#include "24cxx.h" void readNInt(u...

2019-11-07 10:06:32 1032

原创 STM32使用中断接收字符串,可重复接收,使用r\\n作为接收结束的标志

STM32使用中断接收字符串,可重复接收,使用\r\n作为接收结束的标志(这里也可以自己定义)。主要代码如下:串口的函数#include "stm32f10x.h"#include "usart.h" u8 rxbuff[125] = {0};//定义接收字符串的缓冲区,可以自定义大小void uart_init(u32 bound){ GPIO_InitTy...

2019-11-07 10:04:58 4947 2

原创 学习笔记(01):从入门到精通ARM(4412)-Linux内核驱动编程【上】-课程介绍

嵌入式绝对是当前IT领域最炙手可热的话题了。其主要应用领域涵盖与人类相关的各行各业: * 消费电子(手机、平板电脑、游戏机) * 物联网(智能家居、智慧城市) * 工业自动化(无人工厂、工业机器人) 可以毫不客气的说,IT发展的未来在于嵌入式。巨大的商机和人才缺口导致嵌入式软件工程师的薪资居高不下,引得无数青年才俊、高校学子相继加入、苦苦钻研...

2019-10-10 20:02:28 147

原创 stm32硬件I2C测试例程,亲测可用

        对于stm32的硬件I2C确实有不尽人意的地方。但是还是可以实现的,毕竟使用stm32的硬件I2C确实比使用IO口来模拟简单的多。下面的程序代码是使用stm32F03ZET6的I2C1(PB6,PB7)和AT24C02的EEPROM来测试的。希望对于需要的朋友有帮助。i2c.c#include "iic.h"#include "stm32f10x.h"#include "usa...

2018-04-22 22:56:03 21094 5

读取stm32的ID和flash容量

将读取stm32的ID和flash容量的操作封装成库,直接使用一个函数即可完成读取

2020-12-30

MQTT测试包.zip

QT使用MQTT协议链接onenet物联网云平台,因为QT不能直接使用MQTT协议,所以要先下载源码进行编译之后才可以使用MQTT协议。

2020-07-16

CH340T转TTL原理图和PCB.zip

CH340转TTL原理图和PCB分装,自己用到的,里面就是原理图和封装,上传方便自己多端传输和供大家使用可以直接使用。

2020-05-20

IIC读取和存储整形数据.zip

STM32的IIC存储和读取整形数据,下面的程序代码是使用stm32F03ZET6的I2C1(PB6,PB7)和AT24C02的EEPROM来测试的。希望对于需要的朋友有帮助。

2019-11-06

STM32使用串口中断接收字符串.zip

STM32使用串口中断接收字符串,可重复接收,使用\r\n作为接收结束的标志,可以根据需要自定义结束的标志

2019-11-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除