资源简介
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代码
相关资源
- 意法半导体STM全系列微控制器STM32ST
- STM8S SX1278 项目和源代码
- STM8S003 红外遥控
- STM8S例程,基于IAR下的STM8S例程
- 基于STM8的HT1621B显示驱动程序
- STM8驱动HT1621B
- STM8L中文参考手册1-4全
- STM8L_MPU6500_DMP_震动唤醒
- arduino主机,stm8从机。I2C测试 。每次
- Lora通讯 stm8
- STM8+FM17750低成本刷卡方案资料硬件设
- STM8_无线315&433_脉宽自适应_通用解码
- STM8S103系列IO模拟串口通信实现真正串
- STM8S中文参考手册
- cosmic STM8破解
- STM8全系列封装
- STM8L051 低功耗运行模式 库函数例程
- STM8L051.串口接收IDLE中断.zip
- 移植在STM8上的实时操作系统uCOS
- 额温枪STM8L方案含原理图和代码.rar
- STM8L 硬件IIC主机
- (D)基于NTC热敏电阻的温度计.zip
- STM8s官方固件库
- STM8+NRF24l01+发送程序
- STM8+NRF24l01+接收程序
- stm8s006超声波硬件设计电路
- stm8的485串口收发程序
- STM8最强固件库
- STM8蜂鸣器音乐演奏
- IAR+for+STM8+ 破解
评论
共有 条评论