编程基础知识
内存分布的情况和编程的一些基础重要的点(c和c++)
链接文件和启动文件
在STM32的嵌入式开发中,链接文件(.ld文件)和启动文件(startup file)是两个非常重要的部分。它们分别负责程序的内存布局和初始化过程。下面是对这两个文件的分析:
链接文件 (.ld文件)
链接文件是用来描述内存映射的,也就是告诉编译器程序应该放在STM32的哪个内存地址以及指定程序应该如何映射到内存中。它定义了程序代码、全局变量、静态变量等在内存中的布局。链接文件中最重要的部分是SECTIONS,它定义了程序应该如何映射到内存中。例如,代码应该放在哪个地址,数据应该放在哪个地址,中断向量表应该放在哪个地址等。
以下是关于STM32中链接文件的一些重要信息和概念:
ENTRY和EXIT:在链接文件中,ENTRY和EXIT指令用于定义程序的入口点和出口点。ENTRY指令指定了程序开始执行时的入口点,通常是Reset_Handler函数。EXIT指令则定义了程序的退出点,通常指向main函数的结束处。
MEMORY和SECTIONS:MEMORY指令用于指定内存区域的起始地址和大小。SECTIONS指令则用于描述程序应该如何映射到这些内存区域中。例如,代码应该放在哪个内存 ...
视频监控项目
1不需要编写代码
在buildroot中配置,编译;或者下载源码进行编译,移植到开发板
MJPG-streamer方案的实现
编译安装MJPG-streamer使用Buildroot编译
执行命令:mjpg_streamer -i “/usr/lib/mjpg-streamer/input_uvc.so -d /dev/video1 -f 30 -q 90 -n” -o “/usr/lib/mjpg-streamer/output_http.so -w /usr/share/mjpg-streamer/www”
确保PC或手机,跟开发板处于同一个局域网 假设开发板IP为:192.168.1.6在chrome浏览器中打开:192.168.1.6:8080/stream.html就可以看见视频了
流媒体方案的实现之ffmpeg,Nginx
下载源码,手工编译使用Buildroot
或配置选择ffmpeg,直接编译生成映象文件
执行命 ...
PC性能监测
简介hardware monitor:一个显示 PC 运行状态监测的站台,通过上位机将 PC 端的 CPU 温度、CPU 占用率、内存占用率、GPU 温度和实时网速等信息采集后下发到MCU,MCU通过 OLED 将其显示出来。
此项目在vscode中进行开发编译,使用rt-thread操作系统。
PCB:
经过简化打的PCB
驱动代码:led.c
1234567891011121314151617181920212223242526static uint8_t led_enable = 0;static uint16_t pwm = 2001;static uint8_t flag = 0;static rt_uint8_t led_breath_thread_stack[154];static struct rt_thread led_breath_thread;void led_breath_entry(void *parameter);void led_init(){ rt_err_t ret = RT_ERROR; config_t config = g ...
智能家居
简介:项目包含对下位机(MCU对外设数据读取与控制),上位机(APP端),云端(云服务平台)的设计。下位机选取正点原子STM32MINI板作为MCU;外设有LED灯,DS18B20温度传感器,ESP8266,OLED;上位机为制作APP;云端选用中国移动旗下的OneNet平台作为服务器。
引脚:1234567891011121314151617181920212223LED:PA8(自带)DS18B20:VCC --> 3.3VGND --> GNDDATA-->PA0ESP8266:VCC --> 3.3VGND --> GNDRX--> PA2TX --> PA3RST --> PC13EN --> 3.3VOLED:VCC --> 3.3VGND --> GNDSCL --> PC0SDA --> PC1RES --> PC2DC --> PC3
接线图:
OneNet平台使用注册OneNet平台账号
登入后选择控制台,进入后点击全部产品服务,选择多协议接入;(我们使用MQTT,既可以上 ...
无题
智能家居MCU:stm32f103c8t6项目在keil上进行移植创建开发
项目包含对下位机(MCU对外设数据读取与控制)和上位机(包含服务平台和APP端)的设计。下位机选取STM32作为MCU,外设有LED灯和温度传感器,OLED屏。上位机则选用中国移动旗下的OneNet平台作为服务器,考虑到未来物联网的开发大多数是基于手机APP的。使用QT利用socket套接字绑定云平台IP和端口号制作。
下位机外设驱动
ESP8266模块可以通过AT指令控制开发,总体开发速度快,难度较低
OLED模块使用IIC协议驱动显示
温度传感器采集温度信息
云平台使用
选择多协议接入使用MQTT,既可以上传数据也可以下发数据控制
创建的产品
注意设备ID,鉴权信息以及接入方式这3个属性
问题:
esp8266连接热点时存在问题
外设:0.96寸OLED,ESP8266,LED,温度传感器 ESP8266部分的代码主要是借助串口通讯AT指令与ESP8266模块(刷入AT固件的)与OneNet平台进行信息交互(包含ESP8266初始化、数据发送,指令发送和数据缓存清除等)将模块配置为仅作为客户端模式,即St ...