单片机依赖
硬件
芯片板子(51,pic,合泰,stm32,esp32, 树莓派类芯片)(2到30元)
烧录器(JTAG,STLINK)(7到20元)
恒温烙铁(10到100)
热风枪(拆芯片用100元左右)
锡丝
钳子
直流稳压电源(几百元)
示波器(几百到几千元)
逻辑分析仪 (20元)
万用表(几十元)
鳄鱼夹线
杜邦线
不同颜色电线,
网线
串口线
各类传感器
液晶屏
电机
软件
环境
CLion, PlatFormIo, Arduino,Thonny,Vs,Idea,VScode,AD,立创EDA
编程语言
c/c++,c#, python
上位机(推荐C#)
- C#简单实用,不跨平台,C#是语法最好的通用语言,我觉得是否跨平台并不重要
- QT,C++复杂 跨平台
- labview简单跨平台不够灵活
通信协议
UART,I^C,SPI,USB,CAN,Modbus,TCP/IP, UDP, OPC,Mqtt,WebSocket,蓝牙
RTOS
Ucos, FreeRTOS, RTX5, RT-Thread
中间件
文件系统: FatFS
嵌入式shell: lettershell
IAP
BOOT,APP
P1: 如何判断刚上电进boot还是App
通讯口: 刚上电Boot通讯查询是否留在boot
按键: 长按上电,则进BOOT
EEROM标志位
P2:boot 怎么获取bin文件
方式1: APP通过通讯口获得,写入外部EEROM后,复位让boot 从外部EEROM读
方式2: boot直接通过通讯口获得
驱动
液晶,电机,按键,SD卡,各种芯片和传感器驱动…
软件分层
应用,操作系统,中间件,基础库,BSP,驱动,HAL库的组织关系与调用关系
P1: 底层不要调用上层,而是通过回调函数通知上层
通讯
单片机对内通讯:
不同线程,模块间的消息格式与通讯方式
P1: 轮询全局变量,
P2: 函数回调
P3: 信号量,消息队列,消息总线
单片机对外通讯:
发现,订阅,调用,通讯帧格式