基于STM8S + ARF2496K的2.4G标签程序
算法
1. 硬件环境:函数
主控为 BJ8F101 博巨兴的一款主控MCU,其实就是STM8S903,原理图几乎一致。spa
标签为 BJRF007 也就是 ARF2496K。.net
2. 软件环境:开发
使用 ST Visual Develop 进行开发。文档
该项目的一些描述信息: (这只是一个标签程序,对应的还有2.4G主控程序,主控端能够采用STM8,也能够是STM32,或者其余MCU,只要2.4G无线模块一致便可)
get
针对BJ8F101(STM8S903)这款MCU和对应的BJRF007(ARF2496K)
模块开发一款用于单向通讯的标签,标签端发送频率为2s一次,
工做时间可使用示波器测量出来.目前没有使用外部晶振,由内部HSI
提供4分频的CPU工做频率.可以使用的外设有Tim1,Tim2(Tim5),
Tim4(Tim6),ADC,AWU,WWDG,IWDG(最好不要使用).对于主板还有外置
SHT21温湿度传感,LED,KEY.
Tim1 用于产生随机数,开启后不作任何操做,也不产生中断,避免给系统
带来损耗.
Tim2 用于结合WFI(等待模式)作相对精确且节省功耗的延时,如延时
125ms,没必要为了延时而浪费125ms的工做时间.
Tim4 暂未使用,原意是使用来进行定时喂独立看门狗.(不能这样使用)
ADC 能够采样外部电压和内部电压,标签可以使用ADC功能监控电池电压.
AWU 用于标签发射数据时间隔2s定时唤醒.固然也能够外部唤醒.
修改AWU用于更过功能,主要是作延时,由于AWU功耗很低,电流为uA级
,比等待模式的功耗低了不少不少。
WWDG 用于监控程序是否正常工做.不正常时产生复位.
IWDG 没有采用.
注意: 程序目前运行与STM8S903,是从以前的STM8S103上作移植过来的,手册
上明确表示STM8S903没有定时器2和定时器4,却有定时器5和定时器6.其实这
两个定时器是同样的,Tim2和Tim5的基址一致,Tim4和Tim6一致.
为了不多个标签发送数据时产生冲突,采用随机算法,随机数使用Tim1
做为变更的srand种子.每次发送前先进行延时操做,这里延时的时间与
rf_tx_on函数相关,必须大于这个函数运行时间.
监控
这份代码,可用于对STM8S进一步的熟悉,代码中有详尽的注释,压缩文档中,也有具体的描述,以及BUG修正说明。原理
下载位置:点击打开连接
随机数