码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • STM32全链路开发实战教程专栏总目录


    文章目录

    • 专栏说明
    • 一、开发环境相关
    • 二、STM32裸机开发
      • STM32CubeMX系列教程
      • 玩转嵌入式屏幕显示
      • 嵌入式开源小组件的使用
      • mbedtls开源安全库
      • DW1000 UWB芯片开发笔记
      • LVGL学习笔记
        • 经验积累
    • 三、项目经验积累
    • 四、RTOS开发
      • 1. RTOS内功修炼记(内核剖析)
      • 2. TencentOS-tiny
      • 3. LiteOS
      • 5. ThreadX
      • 6. uc/OS-III
      • 7. FreeRTOS
    • 五、IoT物联网开发
      • 1. 通信协议
      • 2. 私有云搭建
      • 3. 公有云对接
      • 4. 设备侧对接实例
      • 5. 通信模组系列
    • 六、ARM架构研究
    • 七、项目实战
      • RT-Thread迷你桌面时钟

    专栏说明

    本教程专注于IoT领域开发,内容用五个字概括:从裸机到云端。

    • 讲述如何使用STM32CubeMX进行裸机开发(覆盖常用外设)
    • 如何使用TencentOS-Tiny、RT-Thread、ucOS、FreeRTOS、threadX等RTOS
    • 如何使用各种开源组件库
    • 常见WiFi、4G、NB-IoT、LoRa等通信模组的使用、
    • mqtt对接各种云平台
    • 一些实战项目
    • 持续更新中……
    • 截至20220919共有157篇文章

    一、开发环境相关

    • 【Keil MDK】(一)Keil MDK 5.28 的下载、安装、破解
    • 【Keil MDK】(二)Keil MDK中芯片器件包的安装
    • 【Keil MDK】(三)Keil MDK更换Sublime Text Molokai主题
    • 【Keil MDK】(四)Keil MDK的一些推荐功能(编码格式、自动保存、代码提示、动态语法检查、多核编译)
    • 【STM32开发环境】Linux下开发stm32(一) | 使用gcc-arm-none-eabi工具链编译
    • 【STM32开发环境】Linux下开发stm32(二) | 使用openocd下载程序(2022.04.05更新)
    • 【STM32开发环境】Linux下开发stm32(三) | 寄存器工程开发
    • 【STM32开发环境】Linux下开发stm32(四) | 固件库工程开发
    • Windows上使用 OpenOCD 给 STM32 下载程序
    • mac下搭建stm32开发环境

    二、STM32裸机开发

    实战篇中使用的开发板是小熊派开发板

    STM32CubeMX系列教程

    • 【STM32Cube_01】初识 STM32Cube 生态系统
    • 【STM32Cube_02】获取并安装STM32CubeMX
    • 【STM32Cube_03】使用GPIO点亮一个LED
    • 【STM32Cube_04】使用GPIO进行按键检测
    • 【STM32Cube_05】使用EXIT中断检测按键
    • 【STM32Cube_06】使用USART发送和接收数据(查询模式)
    • 【STM32Cube_07】使用USART发送和接收数据(中断模式)
    • 【STM32Cube-08】使用USART发送和接收数据(DMA模式)
    • 【STM32Cube-09】重定向printf函数到串口输出的多种方法
    • 【STM32Cube-10】使用ADC读取气体传感器数据(MQ-2)
    • 【STM32Cube-11】使用通用定时器闪烁LED
    • 【STM32Cube-12】使用通用定时器产生PWM驱动蜂鸣器
    • 【STM32Cube-13】使用硬件I2C读写EEPROM(AT24C02)
    • 【STM32Cube-14】使用硬件I2C读取环境光强度传感器数据(BH1750)
    • 【STM32Cube-15】使用硬件I2C读取温湿度传感器数据(SHT30)
    • 【STM32Cube-16】使用硬件CRC校验数据(以SHT30为例)
    • 【STM32Cube-17】使用硬件SPI驱动TFT-LCD(ST7789)
    • 【STM32Cube-18】使用硬件QSPI读写SPI%20Flash(W25Q64)
    • 【STM32Cube-19】使用SDMMC接口读写SD卡数据
    • 【STM32Cube_20】在SD卡上移植FATFS文件系统
    • 【STM32Cube_21】使用DAC输出任意指定电压
    • 【STM32Cube_22】使用ADC读取电压值
    • 【STM32Cube_23】使用USART接收GPS数据并解析(L80-R)
    • STM32CubeMX | 28 - STM32片内Flash的使用
    • STM32CubeMX | 29-使用硬件I2C读取甲醛传感器SGP30
    • STM32CubeMX | 30-使用硬件SPI读写FLASH(W25Q64)
    • STM32CubeMX | 31-使用硬件FMC读写SDRAM(W9825G6KH)
    • STM32CubeMX | 32-使用硬件FMC驱动TFT-LCD屏幕(MCU屏)
    • STM32CubeMX | 33-使用GPIO读取温度传感器数据(DS18B20)
    • STM32CubeMX | 34-使用硬件FSMC读写SRAM(IS62WV51216)
    • STM32CubeMX | 35-使用硬件FSMC驱动TFT-LCD屏幕(MCU屏,NT35510控制器)
    • STM32CubeMX | 36 - 使用CAN总线进行双板通信(TJA1050)
    • STM32CubeMX | 37 - 使用RS485总线进行双板通信(SP3485)
    • STM32CubeMX | 38-使用硬件SPI驱动以太网模块(W5500)
    • STM32CubeMX | 39-使用硬件定时器获取超声波模块数据(HC-SR04)
    • STM32CubeMX | 40 - 实时时钟RTC的使用(日历和闹钟)
    • STM32CubeMX | 41 - 使用LTDC驱动TFT-LCD屏幕(RGB屏)
    • STM32CubeMX | 42 - 使用DMA2D加速显存数据传输

    玩转嵌入式屏幕显示

    • 【玩转嵌入式屏幕显示】(一)显示器概述(常见显示器及其显示原理)
    • 【玩转嵌入式屏幕显示】(三)TFT-LCD屏幕打点 + 画线 + 画矩形 + 画圆Bresenham算法实现(基于打点函数,算法可移植到任何屏幕的驱动程序之上)
    • 【玩转嵌入式屏幕显示】(四)TFT-LCD屏幕显示英文字符(ASCII)和字符串
    • 【玩转嵌入式屏幕显示】(五)TFT-LCD屏幕显示图片
    • ST7789 SPI LCD硬件垂直滚动功能的使用
    • 【玩转嵌入式屏幕显示】(七)LCD中文字符显示机制

    嵌入式开源小组件的使用

    • cJSON使用详细教程 | 一个轻量级C语言JSON解析器
    • MultiButton | 一个小巧简单易用的事件驱动型按键驱动模块
    • letter-shell | 一个功能强大的嵌入式shell
    • EasyLogger | 一款轻量级且高性能的日志库
    • SFUD | 一款串行 Flash 通用驱动库
    • EasyFlash | 让 Flash 成为小型 KV 数据库
    • EasyFlash V4.0 ENV 功能设计与实现
    • MultiTimer | 一款可无限扩展的软件定时器
    • MultiTimer v2 重构版本 | 一款可无限扩展的软件定时器
    • cmd-parser | 一个基于哈希匹配的超快命令解析器
    • jsmn | 一个资源占用极小,解析速度最快的json解析器
    • CmBacktrace | 一款 ARM Cortex-M 系列 MCU 错误追踪库
    • ringbuff | 通用FIFO环形缓冲区实现库
    • 使用J-Link打印日志——SEGGER Real-Time Transfer(RTT)工具的移植使用

    mbedtls开源安全库

    • mbedtls | 01 - 移植mbedtls库到STM32的两种方法
    • mbedtls | 02 - 伪随机数生成器(ctr_drbg)的配置与使用
    • mbedtls | 03 - 单向散列算法的配置与使用(MD5、SHA1、SHA256、SHA512)
    • mbedtls | 04 - 对称加密算法的配置与使用(AES算法)
    • mbedtls | 05 - 消息认证码的配置与使用(HMAC算法、GCM算法)
    • mbedtls | 06 - 非对称加密算法的配置与使用(RSA算法)
    • mbedtls | 07 - DH秘钥协商算法的配置与使用
    • mbedtls | 08 - ECDH秘钥协商算法的配置与使用
    • mbedtls | 09 - 数字签名算法的配置与使用(RSA数字签名算法、ECDSA数字签名算法)
    • mbedtls | 10 - 数字证书及 X.509 证书标准

    DW1000 UWB芯片开发笔记

    • DW1000开发笔记(一)DW1000芯片概览
    • DW1000开发笔记(二)使用STM32硬件SPI+STM32cubeMX+HAL库测试DW1000通信
    • DW1000开发笔记(三)基于STM32 HAL库裸机工程移植DW1000官方驱动
    • DW1000开发笔记(四)DW1000使用轮询方式发送数据
    • DW1000开发笔记(五)DW1000使用轮询方式接收数据
    • DW1000开发笔记(六)DW1000发送数据并等待另一个DW1000回应

    LVGL学习笔记

    • LVGL v8学习笔记 | 01 - LVGL PC模拟器初体验
    • LVGL v8学习笔记 | 02 - 移植LVGL 8.2到STM32F407开发板(MCU屏)
    • LVGL v8学习笔记 | 03 - 移植LVGL 8.2到小熊派开发板(SPI屏)
    • LVGL v8学习笔记 | 04 - 移植LVGL 8.2到STM32F429开发板(RGB屏)
    • LVGL v8学习笔记 | 05 - LVGL基础对象(lv_obj_t)
    • LVGL v8学习笔记 | 06 - label控件的使用方法
    • LVGL v8学习笔记 | 07 - 字体的使用方法
    • LVGL v8学习笔记 | 08 - 按钮控件的使用方法
    • LVGL v8学习笔记 | 09 - 进度条控件的使用方法(bar)
    • LVGL v8学习笔记 | 10 - Tabview控件的使用方法
    • LVGL v8学习笔记 | 11 - 列表控件的使用方法(list)

    经验积累

    • 经验分享 | STM32CubeMX + STM32F1系列开发时遇到的四个问题及解决方案分享
    • 基于STM32标准库建立Keil-MDK工程模板(STM32F407ZG)
    • STM32如何跳转到指定地址执行程序

    三、项目经验积累

    • 骚操作!快速创建JSON数据和解析JSON数据
    • C语言从一段字符串中提取IP地址的方法
    • 实用小技巧 | 用socket玩转http接口
    • C语言使用 sscanf 提取AT命令返回结果中的有效数据
    • keil遇到FCARM - Output Name not specified, please check ‘Options for Target - Utilities‘解决方法
    • Jlink接口引脚定义
    • STM32WL芯片解锁方法
    • 位图数组在XY方向镜像翻转算法实现

    四、RTOS开发

    1. RTOS内功修炼记(内核剖析)

    • RTOS内功修炼记(一)—— 任务到底应该怎么写?
    • RTOS内功修炼记(二)—— 优先级抢占调度到底是怎么回事?
    • RTOS内功修炼记(三)—— 内核到底是如何管理中断的?
    • RTOS内功修炼记(四)—— 小小的时钟节拍,撑起了内核半边天!
    • RTOS内功修炼记(五)—— 任务间同步机制的实现,万变不离其宗!
    • RTOS内功修炼记(六)—— 任务间通信为什么不用全局变量?
    • RTOS内功修炼记(七)—— 内存管理
    • RTOS内功修炼记(八)——CMSIS RTOS API,内核通用API接口
    • RTOS内功修炼记(九)—— 任务入口函数执行完毕之后去哪里?

    2. TencentOS-tiny

    • TencentOS-tiny 正式开源,全网首发评测,带你极速上手体验!
    • 数据结构 | TencentOS-tiny中的双向循环链表的实现及使用
    • 移植TencentOS-tiny内核到裸机工程的方法
    • TencentOS-tiny软件定时器的使用
    • 数据结构 | TencentOS-tiny中队列、环形队列、优先级队列的实现及使用
    • 数据结构 | TencentOS-tiny中单向链表的实现及使用
    • 基于TencentOS-tiny实现PM2.5传感器(攀藤PMSA003)数据解析思路及实现
    • 基于TencentOS-tiny实现甲醛传感器(英国达特 WZ-S)数据解析思路及实现

    3. LiteOS

    • LiteOS内核教程01 | IoT-Studio介绍及安装
    • LiteOS内核教程02 | HelloWorld
    • LiteOS内核教程03 | 任务管理(超简洁API,一行代码即可创建任务)
    • LiteOS内核教程04 | 信号量(用于任务间同步)
    • LiteOS内核教程05 | 互斥锁(共享资源保护)
    • LiteOS内核教程06 | 内存管理
    • atiny_log | LiteOS 物联网操作系统中的日志打印组件使用分享
    • shell | LiteOS 物联网操作系统中的 shell 组件使用分享
    • RT-Thread、LiteOS这些操作系统中,编译出的程序为什么能打印出当前时间?
    • 一行代码就能写一个日志打印组件,你信吗?为你揭晓RTOS中日志打印组件的核心

    5. ThreadX

    • 【首发】从搭建环境开始,教你如何在小熊派上跑起来ThreadX操作系统!
    • ThreadX操作系统在MDK中的移植方法(2021.06.06更新)

    6. uc/OS-III

    • 移植uc/OS-III最新版到小熊派开发板(STM32L431)

    7. FreeRTOS

    • FreeRTOS学习笔记01 | 移植FreeRTOS到小熊派开发板(STM32L431RC)

    五、IoT物联网开发

    1. 通信协议

    • CoAP | 物联网中的RESTful架构实现

    2. 私有云搭建

    • AIOT时代来临,物联网平台(IoT Platform)真有那么重要吗?
    • Redis 3.2安装过程(win10)
    • PostgreSQL 10.11在Windows10的安装方法
    • Mosquitto在win10的安装方法
    • Docker-ce最新版在Ubuntu18.04上的安装、更新、卸载方法(存储库方式)
    • Docker Compose 在Linux上的安装方法
    • EMQX MQTT 服务器(上篇)| 使用EMQ-X搭建私有MQTT服务器
    • EMQX MQTT 服务器(下篇)| 开启客户端身份安全认证并使用mqtt.fx测试
    • Node-RED | 无需一行代码,快速在浏览器中构建一个可视化 IoT Web App

    3. 公有云对接

    • mqtt.fx | 一款超级好用的Mqtt客户端软件(下载、安装、使用详解)
    • 使用mqtt.fx对接百度天工物接入平台

    4. 设备侧对接实例

    • paho | 支持10种语言编写mqtt客户端,总有一款适合你!
    • 小熊派移植TencentOS-tiny+ESP8266+MQTT对接腾讯云平台IoThub
    • 小熊派移植 TencentOS-tiny+M26/EC20+MQTT 对接腾讯云平台IoThub
    • 小熊派移植 TencentOS-tiny+EC20+SAL框架对接 TCP/UDP 服务器
    • TencentOS-tiny+ESP8266+mqttclient对接腾讯云平台IoThub
    • 使用创思通信4G Cat1 DTU基于TencentOS-tiny对接腾讯云物联网开发平台
    • 使用 TencentOS tiny 对接腾讯云IoT Explorer(以智能灯为例)

    5. 通信模组系列

    • ESP8266固件升级方法(ESP8266-12F模组)

    • 移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程

    • 移远 EC20 模组(4G通信模组)AT指令测试 TCP 通信过程

    • 合宙 Air 724UG模组(4G Cat.1通信模组)测试过程

    • 移远BC35-G模组(NB-IoT 通信模组)AT指令测试 UDP 通信过程

    • SIMCOM800C GSM模组(2G通信模组)AT指令测试 TCP 通信过程

    • 使用ESP8266腾讯云定制固件对接腾讯云平台IoThub

    • 使用ESP8266腾讯云定制固件对接腾讯云物联网平台IoT Explorer

    • 移远 EC200S 模组(4G Cat.1 通信模组)AT指令测试 TCP/UDP 通信过程

    • 广和通 L610 模组(4G Cat.1 通信模组)AT指令测试 TCP/UDP 通信过程

    • SIMCOM A7670 模组(4G Cat.1 通信模组)AT指令测试 TCP/UDP 通信过程

    • 资料分享 | 整理一下自己积攒的 LoRa和LoRaWan 资料

    六、ARM架构研究

    • ARM探索之旅 01 | 带你认识ARM Cortex-M阵营
    • ARM探索之旅 02 | ARM Cortex-M 用什么指令集?
    • ARM探索之旅 03 | 如何使用 ARM FPU 加速浮点计算

    七、项目实战

    RT-Thread迷你桌面时钟

    • 使用RT-Thread Studio DIY 迷你桌面时钟(一)| 基于STM32芯片创建HelloWorld工程
    • 使用RT-Thread Studio DIY 迷你桌面时钟(二)| 获取温湿度传感器数据(I2C设备驱动+SHT3x软件包)
    • 使用RT-Thread Studio DIY 迷你桌面时钟(三)| 获取NTP时间(at_device软件包 + netutils软件包)
    • 使用RT-Thread Studio DIY 迷你桌面时钟(四)| OLED显示时钟和温湿度(cpp组件 + u8g2软件包)
    • 使用RT-Thread Studio DIY 迷你桌面时钟(五)| 使用内置 Git 插件管理项目
    • RT-Thread Studio 使用笔记(六)| 获取光传感器数据(I2C设备驱动+BH1750手写驱动代码分享)
    • RT-Thread Studio 使用笔记(七)| 配合STM32CubeMX添加裸机驱动(以ADC为例)
    • RT-Thread Studio 使用笔记(八)| 使用MQTT对接EMQ-X服务器(使用 pahomqtt 包)
    • RT-Thread Studio 使用笔记(九)| 开启OLED显示(使用 u8g2 软件包 c-latest 版本)
    • RT-Thread Studio 项目实战教程 | 快速打造一个桌面mini网络时钟
  • 相关阅读:
    Linux C获取本机IP
    数据库常用命令——单表查询
    pycharm2020无法打开,点击无反应
    历时8年,自建站最终改版
    mysql学习(四)
    springboot+mybatisplus前后端分离——纯后端(万字)开发流程
    【2023】windows下安装libevent
    AI视界周刊第 1 期:最具性价比 GPT-4o mini 发布、大模型集体失智、语言模型安全漏洞
    report | 使用 Docker版的 gitbook 把 markdown 转为 html 报告 (静态站点)
    我的私人笔记(zookeeper分布式安装)
  • 原文地址:https://blog.csdn.net/Mculover666/article/details/126943245
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号