资源简介
STM8主从机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
********************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8507 2013-12-29 11:22 STM8主从机IIC通讯案例\main.c
文件 1954 2007-11-13 15:37 STM8主从机IIC通讯案例\stm8_interrupt_vector.c
目录 0 2018-08-09 17:32 STM8主从机IIC通讯案例\
- 上一篇:ZEMAX 光学设计超级学习手册-素材文件.rar
- 下一篇:MCP4725代码
相关资源
- 两个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
- IAR_STM8——FLASH读写-直接操作寄
- 基于STM8之间的LIN总线通信
- STM8S005K6与W25Qxx系列Flash的硬件SPI代码
- STM8、STM32全系列AD封装库
- STM8_STM32_AT系列原理图库和封装库
- stm8s208上移植SD卡驱动和FAT文件系统
- 中文版 STM8 详细用户手册 说明文档
- STM8S数据手册
- STM8S207 中文PDF
- 基于stm8s003f3无线充电方案
- STM8函数库中文参考手册+自动生成编辑
- stm8中文参考手册
- 无线315/433通用解码
- stm8微操作系统
评论
共有 条评论