资源简介
关键在于双机iic通讯,主机发命令给从机,从机根据命令做出相对应的反应,这是一种协议的开发,主要是以后上位机开发中经常用到的协议,比如我传输一帧数据,从机根据这一帧数据做出相对应的操作!核心在于编程的思想.
代码片段和文件信息
/* MAIN.C file
master.c
PD3-SDA
PC2-SCL
*
* Copyright (c) 2002-2005 STMicroelectronics
*/
#include “main.h“
#define bq3050_write_address 0x16
#define bq3050_read_address 0x17
#define u8 unsigned char
#define u16 unsigned int
#define uchar u8
#define uint u16
#define SDA_OUT PD3_DDR=1
#define SDA_IN PD3_DDR=0
#define SCL_OUT PD2_DDR=1
#define SCL_IN PD2_DDR=0
#define READ_SDA PD3_IDR
#define READ_SCL PD2_IDR
#define sda PD3_ODR
#define scl PD2_ODR
#define NACK 1
#define ACK 0
void iic_init(void);
void iic_start(void);
void iic_stop(void);
void send_ack(void);
void iic_ack(void);
void iic_nack(void);
void delay_us(void);
void write_byte(uchar date);
void write_addr(uchar addressuchar date);
//u8 wait_ack(void);
u8 respons(void);
u8 read_byte(void);
u16 read_addr(u8 au8 addr);
void uart_init(void);
void delay_ms(uint x);
void delay_us_1(void);
u8 read_one_addr(u8 LSBu8 addr);
void send_iic(u8 addru8 dat);
void IIC_Init(void);
void send_decimal(u16 temp);
/***********************************************************
//主函数
**********************************************************/
void main()
{
u16 tempkeykey1;
IIC_Init();
iic_init();
uart_init();
while(1)
{
temp=read_addr(0x090x16);
key=read_addr(0x090x60);
key1=read_addr(0x090x61);
send_decimal(temp);
delay_ms(100);
send_iic(0x0atemp%100000/10000);
send_iic(0x0atemp%10000/1000);
send_iic(0x0atemp%1000/100);
send_iic(0x0atemp%100/10);
send_iic(0x0atemp%10/1);
send_iic(0x0akey%100000/10000);
send_iic(0x0akey%10000/1000);
send_iic(0x0akey%1000/100);
send_iic(0x0akey%100/10);
send_iic(0x0akey%10/1);
send_iic(0x0akey1%100000/10000);
send_iic(0x0akey1%10000/1000);
send_iic(0x0akey1%1000/100);
send_iic(0x0akey1%100/10);
send_iic(0x0akey1%10/1);
//send_iic(0x0a0x0a);
delay_ms(100);
}
}
/***********************************************************
//初始化iic
**********************************************************/
void iic_init()
{
SDA_OUT;
SCL_OUT;
sda=1; delay_us();
scl=1; delay_us();
}
/***********************************************************
//起始信号
**********************************************************/
void iic_start()//起始信号
{
SDA_OUT;
SCL_OUT;
sda=1;
delay_us();
scl=1;
delay_us();
sda=0;
delay_us();
scl=0;
delay_us();
}
/***********************************************************
//停止信号
**********************************************************/
void iic_stop()//停止信号
{
SDA_OUT;
scl=0;
delay_us();
sda=0;
delay_us();
scl=1;
delay_us();
sda=1 ;
delay_us();
}
/***********************************************************
//主机发nack
********************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 34157 2013-12-29 11:22 master\Debug\main.ls
文件 34418 2013-12-29 11:22 master\Debug\main.o
文件 23958 2013-12-29 11:22 master\Debug\master.elf
文件 2288 2013-12-28 14:01 master\Debug\master.lkf
文件 34490 2013-12-29 11:22 master\Debug\master.map
文件 4118 2013-12-29 11:22 master\Debug\master.s19
文件 33199 2013-12-29 11:22 master\Debug\master.sm8
文件 5477 2013-12-29 08:19 master\Debug\stm8_interrupt_vector.ls
文件 2781 2013-12-29 08:19 master\Debug\stm8_interrupt_vector.o
文件 8507 2013-12-29 11:22 master\main.c
文件 374 2013-12-29 13:54 master\master.dep
文件 897 2013-12-28 14:15 master\master.pdb
文件 12473 2013-12-28 14:16 master\master.stp
文件 201 2013-12-29 13:54 master\master.stw
文件 33404 2013-12-29 13:47 master\master.wdb
文件 33194 2013-12-29 13:54 master\master.wed
文件 2292 2013-12-28 14:01 master\Release\master.lkf
文件 1954 2007-11-13 15:37 master\stm8_interrupt_vector.c
目录 0 2014-03-26 10:19 master\Debug
目录 0 2014-03-26 10:19 master\Release
目录 0 2014-03-28 09:26 master
----------- --------- ---------- ----- ----
268182 21
相关资源
- 基于STM8定制轻量操作系统Aatomthreads官
- STM32 CAN总线双机通讯程序(中断接收
- STM8L101低功耗应用
- STM8解码EV1527
- stm8s105 一个简单的高低电平控制3位
- 一个74hc595驱动3个数码管
- STM8L15x的USART调试实验串口调试_含中断
- 无线充电程序
- STM8不用手动复位进入自带Bootloader方法
- STM8S003使用手册
- STM8S103定时器1多模式输出PWMCH3单通道
- STM8L驱动lcd
- STM8主从机IIC通讯案例
- 两个stm8单片机实现spi通信
- STM8s003单片机输出7路PWM波
- STM8S003红外遥控支持连发码
- STM8S003 EEROM读写
- STM8S003 PWM功能实现
- STM8S003读取DS18B20温度传感器
- STM8S003模拟串口中断接收
- 单片机双机通讯源代码汇编语言
- STM8工程模板史上最完整版
- 摄像头模组-EV76C560+DS90UB913A+STM8S103
- STM8S105C6T6开发板
- STM8S_PWM_LED呼吸灯
- 工业级STM8霍尔测速程序
- zw_stm8-32-sht-20-30.zip
- stm8封装库三维PCB封装库AD用PCB封装库
- STM8S003-LIS3DH
- STM8L15X参考手册(中文).pdf
评论
共有 条评论