资源简介
基于STM8的一个项目,其中用到了时钟配置,串口,ADC,看门狗,定时器,外部中断,低功耗管理。STM8常用的外设基本都用到了。还有433无线模块的收发,lis3dh加速度传感器的驱动等。是一个公司产品的项目源码,代码规范自认为还是不错的,有详细的注释。现在这个网站越来越坑了,为了赚点积分,就分享下吧。
代码片段和文件信息
/*************************************************
A7139驱动代码
创建日期: 2016/07/20
作者: lin
版本: V1.0
修改说明: 初次编写 -- 2016/07/20
*************************************************/
#include “a7139.h“
#include “alarm.h“
#include “lis3dh.h“
#include “sys_conf.h“
#include “led.h“
#include “wwdg.h“
#include “delay.h“
#define _nop_() {nop();nop();nop();nop();nop();nop();}
#define RADIO_TEMP 4
uint8_t tmpbuf[20];
const uint8_t ID_Tab[8] = {0x340x750xC50x8C0xC70x330x450xE7}; //ID code
const uint8_t Alarm_StartTab[] = {/*0xFF0x830xDF0x170x320x09*/0x4E0xD10xE70xCD};
const uint8_t Alarm_StopTab[] = {/*0x8A0x910xC60xD50xC40xCA*/0xB00x210x180xAE};
const uint16_t A7139Config[]= //433MHz 10kbps (IFBW = 100KHz Fdev = 37.5KHz) Crystal=12.8MHz
{
0x0021 //SYSTEM CLOCK register
0x0A21 //PLL1 register
0xDA05 //PLL2 register 433.301MHz
0x0000 //PLL3 register
0x0A20 //PLL4 register
0x0024 //PLL5 register
0x0000 //PLL6 register
0x0011 //CRYSTAL register
0x0000 //PAGEA
0x0000 //PAGEB
0x18D4 //RX1 register IFBW=100KHz
0x7009 //RX2 register by preamble
0x4000 //ADC register
0x0800 //PIN CONTROL register Use Strobe CMD
0x4C45 //CALIBRATION register
0x20C0 //MODE CONTROL register Use FIFO mode
};
const uint16_t A7139Config_PageA[]= //433MHz 10kbps (IFBW = 100KHz Fdev = 37.5KHz) Crystal=12.8MHz
{
0xF706 //TX1 register Fdev = 37.5kHz
0x0000 //WOR1 register
0xF800 //WOR2 register
0x1107 //RFI register Enable Tx Ramp up/down
0x0170 //PM register
0x0201 //RTH register
0x400F //AGC1 register
0x2AC0 //AGC2 register
0x0045 //GIO register GIO2=WTR GIO1=FSYNC
0xD181 //CKO register
0x0004 //VCB register
0x0A21 //CHG1 register 430MHz
0x0022 //CHG2 register 435MHz
0x003F //FIFO register FEP=63+1=64bytes
0x1507 //CODE register Preamble=4bytes ID=4bytes
0x0000 //WCAL register
};
const uint16_t A7139Config_PageB[]= //433MHz 10kbps (IFBW = 100KHz Fdev = 37.5KHz) Crystal=12.8MHz
{
0x0337 //TX2 register
0x8400 //IF1 register Enable Auto-IF IF=200KHz
0x0000 //IF2 register
0x0000 //ACK register
0x0000 //ART register
};
/*
* 函数名:StrobeCMD
* 功 能:向A7139发送Strobe命令
* 参 数:cmd 发送的命令
* 返回值:无
*/
void StrobeCMD(uint8_t cmd)
{
uint8_t i;
SCS_CLR; //SCS=0; 选中器件
for(i=0; i<8; i++) //按位发送数据
{
if(cmd & 0x80)
SDIO_SET; //SDIO = 1;
else
SDIO_CLR; //SDIO = 0;
_nop_();
SCK_SET; //SCK=1; 数据在下降沿发送
_nop_();
SCK_CLR; //SCK=0;
cmd<<=1;
}
SCS_SET; //SCS=1; 关闭片选
}
/*
* 函数名:ByteSend
* 功 能:SPI写时序
* 参 数:src 发送的数据
* 返回值:无
*/
void ByteSend(uint8_t src)
{
uint8_t i;
f
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 15551 2016-07-22 17:25 lesson1\App\a7139.c
文件 4976 2016-07-21 11:49 lesson1\App\a7139.h
文件 2313 2016-07-21 14:01 lesson1\App\adc.c
文件 431 2016-07-20 18:45 lesson1\App\adc.h
文件 3155 2016-07-21 11:57 lesson1\App\alarm.c
文件 913 2016-07-20 18:44 lesson1\App\alarm.h
文件 624 2016-07-22 09:15 lesson1\App\battery.c
文件 362 2016-07-22 09:15 lesson1\App\battery.h
文件 1435 2016-07-22 17:03 lesson1\App\clock.c
文件 316 2016-07-20 17:49 lesson1\App\clock.h
文件 736 2016-07-22 08:57 lesson1\App\delay.c
文件 340 2016-07-21 19:20 lesson1\App\delay.h
文件 3061 2016-07-18 11:15 lesson1\App\iic.c
文件 2085 2016-07-18 17:28 lesson1\App\iic.h
文件 636 2016-07-15 14:21 lesson1\App\key.c
文件 493 2016-07-15 14:21 lesson1\App\key.h
文件 4673 2016-07-21 11:59 lesson1\App\led.c
文件 1786 2016-07-20 18:48 lesson1\App\led.h
文件 6732 2016-07-21 15:33 lesson1\App\lis3dh.c
文件 1673 2016-07-20 17:55 lesson1\App\lis3dh.h
文件 3071 2016-07-22 17:27 lesson1\App\manage.c
文件 95 2016-07-19 09:13 lesson1\App\manage.h
文件 2009 2016-07-21 14:08 lesson1\App\power.c
文件 1286 2016-07-21 10:05 lesson1\App\power.h
文件 0 2016-07-15 16:20 lesson1\App\sys.c
文件 70 2016-07-15 16:24 lesson1\App\sys.h
文件 2501 2016-07-22 17:22 lesson1\App\systemconf.c
文件 738 2016-07-22 09:15 lesson1\App\systemconf.h
文件 1149 2016-07-20 09:04 lesson1\App\sys_conf.h
文件 1419 2016-07-18 10:41 lesson1\App\timer.c
............此处省略237个文件信息
- 上一篇:中国县界矢量数据shp包含统计信息
- 下一篇:wrf格式视频转wmv格式转换工具
相关资源
- 基于Quartus II 的dds信号发生器.rar.rar
- Quartus_ii_11.0教程(包含modelsim仿真)
- 595显示数码管驱动
- Quartus II 9.1 64位 32位均可用的破解器
- quartus ii verilog hdl 正弦信号发生器
- Quartz与Spring整合练习源代码
- EDA实验计数器
- 基于stm8智能车载空气净化器的完整设
- STM8L 内部温度ADC检测
- FPGA\“打字机\“ (VGA & UART)
- 直方图均衡图像增强的硬件在Quartus
- FPGA数字信号处理四Quartus FIR IP核实现
- STM8S_StdPeriph_Lib_V2.3.1
- 基于quartus的分频器和定时器设计
- Quartz.NET定时任务,可直接生成Window
- STM8 模拟串口 IO口模拟
- gy906 90614 STM32F1读取温度lcd显示 串口和
- 利用QUARTUS II软件 电子秒表设计
- Quartus 13.1安装及第一个Verilog程序仿真
- 使用STM32三个串口的接收与发送
- Verilog电子表编程
- stm8s003f3最小系统原理图
- 南京理工大学 2018研究生电类综合实验
- ZYNQ进阶之路14工程.rar
- 智能车载空气净化器的完整设计
- Quartus和Modelsim中仿真ROM所需文件和
- STM8S003F3-数据手册
- stm32f103x双串口间相互通讯基础版
- stm8 红外收发
- 基于FPGA的FM调制与解调,FM工程文件和
评论
共有 条评论