完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我的板子是CH452的SDA,和SCL分别连接STM34F103的B6,PB7.双线,而且SDA做输入和输出。木有INT#.。下载的别人的例程但是环境貌似有点差距打
#include #include #include #include "STM32f10x_lib.h" //#define ENABLE_2_CH452 1 // 在2线接口下支持两个CH452芯片并联 /* 延时1uS子程序,主要用于2线接口,与单片机速度有关 */ //#define DELAY_1US {} // MCS51<=10MHz //#define DELAY_1US {_nop_();} // MCS51<=20MHz #define DELAY_1US { mDelayuS(1); } // MCS51<=30MHz /* 2线接口的连接,与实际电路有关 */ //***it CH452_SCL=P1^7; //***it CH452_SDA=P1^6; // 如果使用真正的2线接口,那么SDA接中断引脚P3^3/INT1,用SDA直接做中断输出 //***it CH452_ADDR=P1^5; // 实际电路应该硬件接GND或者VCC //***it CH452_INT=P3^3; // 标准的2线接口使用该引脚输出中断 /* 4线接口的连接,与实际电路有关 */ //***it CH452_DCLK=P1^7; // 串行数据时钟上升延激活 //***it CH452_DIN=P1^6; // 串行数据输出,接CH452的数据输入 //***it CH452_LOAD=P1^5; // 串行命令加载,上升延激活 //***it CH452_DOUT=P3^3; // INT1,键盘中断和键值数据输入,接CH452的数据输出 /* 2线接口的位操作,与单片机有关 */ #define CH452_SCL_SET {GPIOB->BSRR = GPIO_Pin_6 ;} #define CH452_SCL_CLR {GPIOB->BRR = GPIO_Pin_6;} //#define CH452_SCL_D_OUT {} // 设置SCL为输出方向,对于双向I/O需切换为输出 void CH452_SCL_D_OUT( void ){ //PB5 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //Pb1 SDA GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*推拉输出*/ GPIO_Init(GPIOB, &GPIO_InitStructure); } #define CH452_SDA_SET {GPIOB->BSRR = GPIO_Pin_7 ;} #define CH452_SDA_CLR {GPIOB->BRR = GPIO_Pin_7 ;} #define CH452_SDA_IN (GPIOB->IDR &0x20) //PB5 void CH452_SDA_D_OUT( void ){//配置GPIO //PB5 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //Pb5 SDA GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*推拉输出*/ GPIO_Init(GPIOB, &GPIO_InitStructure); } void CH452_SDA_D_IN( void ) { //PB5 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //Pb5 SDA GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; /*推拉输出*/ GPIO_Init(GPIOB, &GPIO_InitStructure); } //#define CH452_SDA_D_OUT {} // 设置SDA为输出方向,对于双向I/O需切换为输出 //#define CH452_SDA_D_IN {CH452_SDA=1;} // 设置SDA为输入方向,对于双向I/O需切换为输入 /* 4线接口的位操作,与单片机有关 */ #define CH452_DCLK_SET {CH452_DCLK=1;} #define CH452_DCLK_CLR {CH452_DCLK=0;} #define CH452_DCLK_D_OUT {} // 设置DCLK为输出方向,对于双向I/O需切换为输出 #define CH452_DIN_SET {CH452_DIN=1;} #define CH452_DIN_CLR {CH452_DIN=0;} #define CH452_DIN_D_OUT {} // 设置DIN为输出方向,对于双向I/O需切换为输出 #define CH452_LOAD_SET {CH452_LOAD=1;} #define CH452_LOAD_CLR {CH452_LOAD=0;} #define CH452_LOAD_D_OUT {} // 设置LOAD为输出方向,对于双向I/O需切换为输出 #define CH452_DOUT_D_IN {CH452_DOUT=1;} // 设置DOUT为输入方向,对于双向I/O需切换为输入 |
|
相关推荐
2个回答
|
|
你实际测试到底有什么问题,大家没时间来分析你的程序到底有什么问题,再说程序是测试出来的,再好的程序员写出的程序也得根据调试找问题
|
|
|
|
程序没问题,就是调试的时候本来是当按键的时候点亮一个灯,但是它灯不亮
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
非科班也能玩转Android应用,体验QT跨平台能力-迅为RK3568开发板
465 浏览 0 评论
飞凌嵌入式-ELFBOARD-ELF 2硬件分享之最小系统原理
691 浏览 0 评论
1767 浏览 0 评论
Cortex-A55 处理器到底什么来头?创龙教仪一文带您了解
1030 浏览 0 评论
RK3568 + OpenCV 会碰撞出什么火花?案例详解:2-1 基于OpenCV的画线实验
756 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-13 01:12 , Processed in 0.596186 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号