一、操作系统介绍
1、FreeRTOS: 实时操作系统
2、RT_Thread: 国产免费,网上下载固件、现成源码
二、项目功能介绍
1、按键控制充电、云平台充电
2、按金额、时间、功率去充电
3、详细功能:
1》搭载环境:keil5、CubeMx git env 制作BSP扳机支持包
2》PIN设备电灯、按键控制、蜂鸣器
4、常见的半导体厂家:
国外:stm32(st:意法半导体、m:arm公司) 德州仪器 恩智浦
国内:兆易创新 GD32 ESP32 乐鑫科技
stm32:m:a手机、r公司、m系列
32位:32根地址线、2的32次方Byet=4GB
5、单片机常见的开发方式:
1》寄存器:技术参考手册、大量的位运算
2》标准库:对寄存器封装
3》HAL库:st 图形化开发底层代码不用写、但是运行速度比较慢
用CubeMx配置底层、但不用他的函数、而是RTT函数
6、stm32f103zet6
内置flash:512KB(储存代码) SRAM:64kb 引脚个数:144
IO 电源 晶振 开关 boot0 boot1(决定开机形式)
TTL电平:1:2.5~5V 0
GPIO八种模式:
1、上拉输入(高)、下拉输入(低)、浮空输入、模拟输入(ADC)
2、推挽0/1、推挽复用、开漏0(外接上拉电阻才能输出1)、开漏复用:复用为片上外设
任务的状态:运行态、挂起态、阻塞态、就绪态、关闭态
任务间切换:运行态---->阻塞 加延时
任务的优先级:
三、PIN设备
ADC:12位、但是、16位的寄存器,所以要右对齐、转换方法:逐次逼近法
转换方式:单次数、连续、扫描、间断
查找设备、使用设备
四、按键检测
1、按键消抖:延时消抖、外加电容
五、逻辑开发与RTOS
1、逻辑开发不能解决多线程任务
2、RTOS多线程实时操作系统
3、线程创建步骤
1、入口函数void xxx_entry(void *p) void *:万能指针,可以传任意类型函数
2 、创建线程(初始态):返回值、参数(6个)
3、启动线程:线程变成就绪态
因为CPU是单核,防止任务一直占用内核,需要释放cpu,所以加延时或者量
中断的特点:
1、名字固定 2、无参无返 3、快进快出
4、建议不要加printf函数 5、不可加一些不可重入的函数
六、人机交互平台
1、屏幕的材质:
OLED(O有机自发光、成色细腻、薄容易烧、充当曲面屏、频闪)
LCD(液晶显示屏、不能自己发光需要背光板、寿命长)LED点距比较大、成像不太好(广告牌)
2、屏幕的尺寸
分辨率:240*320像素点
电脑:RGB 8 8 8位、24位色彩深度
LCD屏:16位 RGB 5 6 5 例如:红色:1111 1000 0000 0000 或者是0XF800
3、单片机与LCD屏通信
spi:4线:mosi miso---串行 sck(同步) 、CS
并行:
波特率:bps、bit/s 、115200等速率跟时钟频率有关
七、串口通信
通信的类型:串行(一根线、路程远速度慢)、并行(两根数据线)
单工(单向传)、半双工(同一时间内还是单工)、全双工(同时双向导通)
通信协议:RS232协议:起始位+数据位+校验位+停止位
电平信号:1-0 1/0 0 1
接线方法:直接相接法:T和R直接相接,但是需要满足电平范围一致
间接连结:通过CH340转换芯片进行下载链接
RS485协议ModBUS、、、汽车行业经常用的CAN总线
工业通信模式:4G、WIFI、蓝牙、ZigBee
农业通信:Lora
串口:可以接受各种各样的通信模式的数据,
1、发数据:2、收数据 本质还是修改寄存器:USRT->DR
八、WIFI模块
1、ESP8266模块的模式:
STA模式:连接热点、要求2.4G,wifi热点不能出现中文和特殊符号
AP模式:自身释放热点
STA+AP模式:上述两种的结合,不过本次项目只用第一钟STA模式
2、配置WIFI模块ESP8266
默认波特率:115200
九、巴法云服务器
常见服务器:京东云、阿里云、巴法云