随笔分类 - 嵌入式
摘要:一.消息队列 1.概念 信号量本身不能传递数据,如果希望在任务通信同时传递数据,可以使用消息队列 任务和中断都可以发送消息,但是只有任务能够接收消息 2.编程使用 (1)创建消息队列 void OSQCreate (OS_Q *p_q,//消息队列控制块(指向一个消息队列) CPU_CHAR *p_
阅读全文
摘要:一.UCOS 1.概念 uc/OS-III(Micro C OS Thee),微型C语言编写的操作系统第三版。是一个可升级,可固化,多任务基于优先级的可抢占式实时内核。 ucos的任务个数不限制,实现了操作系统所需求的大部分功能,资源管理,同步,任务之间的通信。除了这些基本的功能以外,还提供一些其他
阅读全文
摘要:一.SPI Flash 连续读 擦除扇区 按页写 二.RC522 RFID 1.概念 RFID是一种近场通信,是一种近距离的非接触式的无线通信方式。一端使用芯片卡,一端是读卡电路。芯片卡只需要芯片电路,供电由电磁场供电,也就是在通信由读卡端供电。具有成本低,携带方便。RFID的应用场景非常广泛,比如
阅读全文
摘要:一.Flash 1.内置Flash编程访问 (1)在擦除和写flash必须先解锁,操作完后加锁 FLASH_Unlock();//解锁 FLASH_Lock();//加锁 (2)在读/写Flash之前应该清除错误标识 FLASH_ClearFlag(FLASH_FLAG_EOP|FLASH_FLAG
阅读全文
摘要:一.at24c02 练习: 写一页 读任意长度 二.OLED 1.背景 目前主流的显示设备LCD和OLED,OLED每个像素使用OLED发光,从而产生要显示的内容 LCD是液晶显示屏,由背光和液晶面板组成 2.OLED和开发板的连接 连接和at24c02的同一条IIC总线上 3.OLED手册 3.O
阅读全文
摘要:一.RTC(实时时钟) 1.背景 时间在计算机系统中是一个非常重要的参数,在很多应用场景下都需要使用时间。RTC就是一个专门记录时间的设备,本质上是一个1Hz定时器。 为了计时准确,计时系统掉电也要能够正常计时。为了到达这个目的,RTC需要独立的时钟源,独立的供电电源 stm32f407的RTC的时
阅读全文
摘要:烟雾传感器 1.外部中断消抖 轮询时使用延时消抖,但是中断中不允许延时,即使延时也不能组织中断的产生,可能导致中断重入 外部中断我们应该采用定时器来去除抖动,方法是在外部中断发生时,并不去处理具体的事务,而是去启动重置定时器 处理具体事务的代码放入到定时器中断中去处理,这样即使有多次抖动产生中断,通
阅读全文
摘要:一.串口蓝牙 1.无线通信方式 zigbee,wifi,红外,RFID,蓝牙.... 串口蓝牙为例,我们购买串口蓝牙模块后,只需要将蓝牙模块连接到芯片的串口接口上 然后按照蓝牙模块要求的数据形式通过串口来和蓝牙模块进行数据交互,蓝牙模块就会按照你的设置去将数据通过蓝牙和外部的其他蓝牙设备进行通信 通
阅读全文
摘要:一.串口 在嵌入式开发中,为了辅助提高开发效率,我们需要调试工具,串口就是一个简单易用的调试工具,能够通过串口输出信息了解硬件的工作状态和参数 stm32库函数开发中,在printf函数的实现中提供了一个后门,关于其中硬件输出的部分需要使用者自己实现,后门接口函数是一个发送字符的函数: #pragm
阅读全文
摘要:一.定时器 1.PWM PWM脉冲宽度调制(Pulse Width Modulation)是通过微处理器的数字输出(高低电平)来对模拟电路进行控制的一种非常有效的技术,在测量,通信和功率控制等领域被广泛使用 占空比 - 在规定时间内,有效电平所占的比例 2.stm32通用定时器有PWM功能 通用定时
阅读全文
摘要:一.stm32的启动过程 在stm32的开发中,芯片的启动代码官方通常会提供,一般不需要修改。但是对芯片的启动代码有一定了解,有助于对某些组件工作原理加深了解 可以借助官方提供的启动代码来理解启动过程,启动代码是一个汇编文件(.s作为后缀),我们开发板的启动文件是start_stm32f40_41x
阅读全文
摘要:一.GPIO 1.概念 General Purpose input output,也叫做通用输入输出端口,简称为GPIO GPIO输入输出的0和1的二进制数据,物理上使用高低电平(ARM中高电平:3.3V 低电平:0v) 2.编写硬件驱动的流程(以LED为例) (1)看原理图 通过搜索硬件在开发板的
阅读全文
摘要:stm32课程安排(13+4天) 1.stm32简介和开发环境搭建 2.GPIO 3.stm32启动过程,时钟系统 4.中断 5.定时器和PWM 6.串口 串口蓝牙(串口WIFI...) 7.温湿度传感器(一线式总线) 8.看门狗 9.ADC 10.IIC接口 at24c02 OLED 11.Fla
阅读全文
摘要:/date 航班信息文件/register 用户注册信息文件/user 用户购票信息文件 server head client
阅读全文
摘要:2019年8月19日星期一 一. UDP协议通信 1. UDP协议的特点? UDP协议是面向于无连接的通信方式,用户只需要知道服务器的IP地址就可以发送数据给服务器,但是数据容易造成丢失。 2. UDP协议服务器过程? 1)创建一个UDP协议的套接字 int sockfd = socket(AF_I
阅读全文
摘要:2019年8月16日星期五 一. 网络编程学习大纲 1. 网络编程专业术语,socket概念。 2. 网络编程通信协议:TCP协议/UDP协议。 3. 网络编程IO模型。 4. 网络编程设置套接字属性 -> 广播和超时。 二. 网络编程专业术语,socket概念。 1. 系统编程进程之间通信与网络编
阅读全文
摘要:一. 线程池学习文件 pool_test/ -> 线程池函数接口实现源码,简单实例。 系统编程项目接口设计说明书.doc -> 详细说明了线程池各个函数的头文件/原型/参数/返回值..。 线程池模型.jpg -> 帮助大家理解线程池原理。 二. 学习线程池实现过程? 1. 什么是线程池? 线程池就是
阅读全文
摘要:一. 线程互斥方式 - 互斥锁。 1. 什么是互斥锁?特点如何? 互斥锁是专门用于处理线程互斥的一个方式,它有两种状态:上锁状态/解锁状态。 特点:如果处理上锁状态,则不能再上锁,直到解锁为止才能再上锁。如果是处于解锁状态,则不能再解锁了,直到上锁了才能再解锁。 2. 关于线程互斥锁API函数接口?
阅读全文
摘要:2019年8月14日星期三 一.线程属性 -> 分离属性 1. 什么是分离属性? 分离: 说明主线程不需要接合子线程 -> 不需要pthread_join子线程 -> 当主线程退出时,子线程还是会退出。 非分离: 说明主线程需要接合子线程 -> 需要pthread_join子线程 默认pthread
阅读全文
摘要:2019年8月13日星期二 一. 进程之间的通信方式 - 共享内存 1. 共享内存作用范围是什么?机制如何? 可以作用于linux下任意两个进程,机制就是使用同一片共享的内存区域,使得两个任意的进程访问这个区域,实现数据的交换。 2. 关于共享内存的API函数接口? 1)由于共享内存属于IPC对象,
阅读全文