资源简介
基于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 15.0中仿真Altera三速以太网I
- Quartus II 15.0中仿真Altera三速以太网I
- 3人表决器 QuartusII
- Verilog FPGA UART串口控制器
- 硬件课程设计—流水灯(quartus软件
- UART转CAN或LIN的工具(Uart2any)和文档
- 曼彻斯特编解码_同步QuartusII工程
- CPLD Verilog数字密码锁 源码
- 用quartus 2编的全加器(原理图输入)
- 意法半导体STM全系列微控制器STM32ST
- 6相12拍步进电机控制器
- STM8S SX1278 项目和源代码
- MQTT+串口(usart)透传
- Quartus EDA交通灯控制电路的设计实训报
- Quartus II 15.0中仿真DDR2 IP核
- STM8S003 红外遥控
- STM32F042F6P6 Uart12DMA;发送中断接收
- STM8S例程,基于IAR下的STM8S例程
- STM32F103VCT6TR - High-density performance lin
- 基于STM8的HT1621B显示驱动程序
- STM8驱动HT1621B
- uart_tx.zip
- STM32F407 串口配置 串口1~6 六串口同时
- STM32F407_6个串口同时使用的代码
- windows服务小,每天定时删除文件夹里
- s7epasrvx.exe CP2102_USB_to_UART_Bridge_Contro
- CP210x UsbToUART win7 64 bit
- quartus 11.0 破解包 全
- Quartusii十字交叉路口三色交通灯设计
- 中值滤波算法Quartus实现
评论
共有 条评论