2024年 ▇▇▇▇大学 嵌入式系综合实践 资料整理与问题记录
2024年 ▇▇NU 嵌入式系综合实践 资料整理与问题记录
我已经通过量子思维彻底明白了!我们国家正在建设量子通信网络,而量子纠缠是这种通信方式的基本原理之一。而我们现在看到的就是正在建设中的沪哈量子通信干线,这两位老师就是其中的一对量子!
事实就是如此,即使是哈工大这样的顶尖学府,也会有这样的老师,此刻两所学校学习嵌入式的同志们的心是相连的,我们的遭遇竟然是那么的一致。
资料分享
下载代码请复制以下命令到终端执行
git clone https://gitee.com/EAST68786C/2024.git
各文件夹部分内容介绍如下:
datasheet
CC2530芯片应用手册、使用开发板相关电原理图、使用外设数据手册
doc
CC2530开发板厂商提供的实验手册、WIFI模块接受、OLED屏幕字模提取工具
project
标准工作环境、项目工程文件压缩包、DHT11通信函数
report
实验过程记录
src
基础实验源代码
tools
串口通信工具、点阵LED字模生成工具
本仓库对未开源原创的代码、项目文件等保留一切权利。其他来源文件仅供便于学习参考使用。
软硬件开发环境
- IDE版本 IAR 8.10.3
- 芯片型号 TI CC2530
- 协议栈版本 Z-Stack 2.5.1
基础实验
基础实验的目的是掌握CC2530内嵌的8051单片机的使用,如果有51单片机的开发基础,加上查阅User Guide能够解决大部分的应用问题。
基础实验对SPI、UART、ADC、IO、TIMER、WATCHDOG等基本功能都有所涉及,笔者遇到的问题多为实验手册上埋下的巨坑,通过实践和配合查阅数据手册,能够自行解决大部分问题。
在此对部分不常见问题进行罗列:
通过寄存器设置的波特率和上位机设置的波特率不匹配,存在2倍/4倍的误差
与系统时钟有关,若系统时钟工作在16MHz下,然而波特率对应寄存器的设置的表格给出的是在32MHz的设置,就会存在恰好一半的误差。
片内温度传感器的值的测量与校准
CC2530内置温度传感器温度计算方法
在线调试和打印变量信息
在嵌入式软件开发中,应当优先完成UART的配置与使用,这种通讯协议最简单、最常见与上位机配合使用,便于开发过程中的调试。
在IAR Embedded Workbench中实现打印输出
CC2530 中文应用手册
镁光M25PE20/M25PE10 SPI通信资料
镁光M25PE20/M25PE10数据手册
详解SPI中的极性CPOL和相位CPHA
SPI波特率与时钟频率的关系
Z-Stack 协议栈移植与组网通信
- 确定使用Z-Stack的版本,最新版本是3.0.1,本实践采用资料更多的2.5.1
- 根据开发板的实际连线,修改
hal_board_cfg.h
头文件内的配置。例如,例程中的TI官方开发板用的是五向按键,LED是共阴极,如果不同则需要更改ACTIVE_LOW/ACTIVE_HIGH,代表何种电平有效。 - 对需要的外设,在Project Setting里预处理器项设置中用宏定义打开,x代表关闭,一般不进行删除。
- 调试过程应当采取,先单机再组网,先简单外设后复杂外设,先上位机通信正常再调试Zigbee通信。
- Zigbee通信设置在.cfg文件下修改,主要需要修改的是PANID、CHANNEL等通信设置。
HalUartWrite函数
HalUartWrite函数详细介绍
sprintf函数
sprintf函数介绍,用于将数据转化成字符串 - 在使用Z-Stack时,使用的延时函数可参考仓库内的MyDelay.c文件,使用更精准,不要混用其他函数。
Zigbee3.0网络编程指南,这系列文章对了解Zigbee通信过程,网络拓扑都非常有帮助 IAR | Error[Pa045]: function “xxx“ has no prototype
关闭函数声明检查atol
需要注意的是,在当前的开发平台,int
是2Bytes,long
是4Bytes,根据字符串表示的数字,分别使用atoi
atol
,否则会转换出错误结果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!