- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 STM32串口通信(HAL库 二)
紧接着上一篇博文。。。4 编写串口中断函数当中断发生的时候,程序就会执行中断服务函数,我们在中断服务函数中编写相应的逻辑代码就可以了。5串口数据接收和发送这里需要介绍几个串口发送接收的函数HAL_UART_Transmit();//串口发送数据,使用超时管理机制HAL_UART_Receive();//串口接收数据,使用超市管理机制HAL_UART_Transmit_IT();//串口中断模式发送 HAL_UART_Receive_IT();//串口中断模式接收HAL_UART_Tran
2021-09-03 10:27:44
3591
3
原创 STM32串口通信(HAL库)(一)
串口简介 串口最基本的设置,就是波特率的设置。首先要开启时钟,并设置相应的IO口模式,然后配置一下波特率,数据位长度,奇偶校验位等信息就可以用了。1.串口时钟使能 串口作为STM32的一个外设,其时钟由外设时钟使能寄存器控制,在stm32f103中串口1是在APB2ENR寄存器的第14位,除了串口 1 的时钟使能在 APB2ENR 寄存器,其他串口的时钟使能位都在 APB1ENR 寄存器,而 APB2(72M)的频率一般是 APB1(36M)的一倍。2.串口复位 当外设出现异常的时候可
2021-08-06 17:55:26
1564
原创 【自学笔记】STM32时钟系统详解
什么是时钟? 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。时钟系统就是CPU的脉搏,决定CPU速率。片机有了时钟,才能够运行执行指令,才能够做其他的处理 (点灯,串口,ADC),时钟的重要性不言而喻。为什么STM32要有多个时钟源呢? STM32本身十分复杂,外设非常多 但我们实际使用的时候只会用到有限的几个外设,使用任何外设都需要时钟才能启动,但并不是所有的外设都需要系统时钟那么高的频率,为了兼容不同速度的设备,有些高速,有些低速,如果都用高速时钟,势必造成浪费
2021-08-02 14:18:25
2083
2
原创 【自学笔记】STM32的SYSTEM文件夹介绍
概览该文件夹下包含3个文件:1.delay文件夹 delay文件夹内包含了delay.c和delay.h两个文件,用来实现系统的延时功能,其中包含了7个函数: void delay_osschedlock(void); void delay_osscheddunlock(void); void delay_ostimedly(u32 ticks); void SysTick_Handler(void); void delay_init(u8 SYSCLK); void delay_ms
2021-08-02 08:53:15
872
原创 MQTT自学入门(第一天)
MQTT相关概念1、主题1.1三种消息发布服务质量(Qos)Qos=0"至多一次",消息发布完全依赖于底层TCP/IP网络。会发生消息丢失或重复。这一级别可用于如下情况, 环境传感器数据,丢失一次读记录无所谓,因为不久后就会有第二次数据发送。这一种方式主要普通APP的推送,倘若你的智能设备在消息推送时没联网,推送过去没有收到,联网后也收不到了。Qos=1,“至少一次”,确保消息送达,但消息重复可能会发生。Qos=2,“只有一次”,确保消息到达一次。在一些比较严格的计费系统中,可以使用这个级别。在计
2021-06-18 22:04:16
456
1
原创 LabVIEW自学笔记一
LabVIEW第一章概念 LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW 集成了与满足 GPIB、VXI、RS-232 和 RS-485 协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用 TCP/IP、ActiveX 等软件标准的库函数。这是一个功能强大且灵活的软件。 LabVIEW 是一个面向最终用户的工具。它可
2020-12-21 16:21:59
921
原创 LabVIE学习之状态机
状态机基本实现1.大体框架先明确了大体的框架,需要几个状态,我自定义了一个枚举常量加上循环while循环的移位寄存器来控制每个状态的自动切换,这样的优点是能简单的控制各个状态自动切换,缺点是比较单一,只适合比较小的项目,大一点的项目一般采用队列来完成,这里就不细说,下次发帖再细讲队列。2.实例我这里是需要通过串口发送数据来控制工业相机进行拍照处理,然后返回一个数据使PCL自动亮灯,模拟的是一个工厂加工线的自动进出站处理。我这里图片里面,红色箭头指向的地方是有一点问题的,就是自定义的枚举常量我拿
2020-12-21 16:12:17
261
1
原创 进程的创建--fork函数
进程的创建 在linux环境下,创建进程的主要方法是调用下面两个函数:#include <sys/types.h>#include <unistd.h>pid_t fork(void);pid_t vfork(void);创建一个新进程pid_t fork(void)功能 fork函数用于一个已存在的进程中创建一个新进程,新进程成为子进程,原进程为父进程返回值 成功:子进程中返回0,父进程中返回子进程进程ID 失败:返回-1 使用fork函数得
2020-11-02 11:24:18
315
原创 嵌入式自学笔记之进程控制
2.1 进程号 每个进程都由一个进程来标识,其类型为pid_t,进程号的范围为:0~32767 进程号是由操作系统随机给当前进程分配的,不能自己控制 进程号是唯一的,但进程号可以重用,当一个进程终止后,其进程号就可以再次使用了。 在Ubuntu中查看当前系统中所有的开启的进程ps ajx #这是查看所有的进程ps #查看当前路径的进程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pD9bThz0-1604287033022)(C:\Users\XX\
2020-11-02 11:20:20
118
原创 嵌入式自学笔记之进程概述
1.1进程的定义程序和进程的区别: 程序:是静态的,存放在磁盘上的可执行文件 进程:是动态的,是运行在内存中的程序的执行实例程序是一些指令的有序集合,而进程是程序执行的过程,进程是程序的一次执行过程,进程的状态是变化的,其包括进程的创建、调度和消亡。只要程序运行,此时就是进程,程序每运行一次,就会创建一个进程在linux系统中,进程是管理实务的基本单元。进程拥有自己独立的处理环境和系统资源(处理器、存储器、I/O设备、数据、程序)可使用cxec函数由内核讲程序读入内存,使其执行起来成为一
2020-11-02 11:16:57
206
原创 自己的一点嵌入式面试题目+答案
C语言面试题目宏定义1.用预处理指令#define声明一个常数,用以表明1年有多少秒?(忽略闰年)#define 宏名 宏体宏名 : 一般来说都用大写字母表示#define SECOND_OF_YEAR 123456#define SECOND_OF_YEAR (365*24*3600)UL上述两个表达式中,第一个直接是人为计算出了结果然后再赋值给以后需要的操作,第二个是直接写出表达式,让CPU进行计算,因为在C语言中,这个表达式是一个表达式常量,宏定义了之后,这个SECOND_OF_Y
2020-10-29 15:06:33
146
原创 hexo博客部署到github后进不去
请教大家!我的hexo博客部署到github后进不去!写的博文都能生成出来,也能部署到github上面去,使用hexo server后也能在本地端口进入我的主页,但是从github域名就是进不去,显示“您未获授权,无法查看此网页。HTTP ERROR 403”你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。部署也是能成功的也能进入本地端口localhost:4000希
2020-10-26 22:16:45
1595
5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人