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,根据字符串表示的数字,分别使用atoiatol,否则会转换出错误结果。

浙公网安备 33010602011771号