My Own FlaG

博客提及染色游戏、主席树优化建图以及TEST_100相关内容,主要聚焦于信息技术领域的算法和应用,染色游戏可能涉及图形处理等,主席树优化建图是算法层面的内容。
#include "stm32f10x.h" void My_I2C_Init(void); int My_I2C_SendButes(I2C_TypeDef*I2Cx,uint8_t Addr,uint8_t *pData,uint16_t Size); int main(void) { My_I2C_Init(); uint8_t pData[]={0xAE,0x20,0x10,0xb0,0xc8}; My_I2C_SendButes(I2C1,0X78,pData,sizeof(pData)/sizeof(uint8_t)); while(1) { } } void My_I2C_Init(void) { //对I2C1进行重映射 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_I2C1,ENABLE); //io引脚初始化 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9; GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_OD; GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStruct); //初始化I2C模块 RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE); RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1,ENABLE); RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1,DISABLE); I2C_InitTypeDef I2C_InitStruct; I2C_InitStruct.I2C_ClockSpeed=400000; I2C_InitStruct.I2C_Mode=I2C_Mode_I2C; I2C_InitStruct.I2C_DutyCycle=I2C_DutyCycle_2; I2C_Init(I2C1,&I2C_InitStruct); I2C_Cmd(I2C1,ENABLE); } int My_I2C_SendButes(I2C_TypeDef*I2Cx,uint8_t Addr,uint8_t *pData,uint16_t Size) { //等待总线空闲 while(I2C_GetFlagStatus(I2Cx,I2C_FLAG_BUSY)==SET); //发送起始位 I2C_GenerateSTART(I2Cx,ENABLE); while(I2C_GetFlagStatus(I2Cx,I2C_FLAG_SB)==RESET); //寻址阶段 I2C_ClearFlag(I2Cx,I2C_FLAG_AF); I2C_SendData(I2Cx,Addr&0xfe); while(1) { if(I2C_GetFlagStatus(I2Cx,I2C_FLAG_ADDR)==SET) { break; } if(I2C_GetFlagStatus(I2Cx,I2C_FLAG_AF)==SET) { I2C_GenerateSTOP(I2Cx,ENABLE); return -1; } } I2C_ReadRegister(I2Cx,I2C_Register_SR1); I2C_ReadRegister(I2Cx,I2C_Register_SR2); //发送数据 for(uint16_t i=0;i<Size;i++) { while(1) { if(I2C_GetFlagStatus(I2Cx,I2C_FLAG_AF==SET)) { I2C_GenerateSTOP(I2Cx,ENABLE); return -2; } if(I2C_GetFlagStatus(I2Cx,I2C_FLAG_TXE==SET)) { break; } } } while(1) { if(I2C_GetFlagStatus(I2Cx,I2C_FLAG_AF==SET)) { I2C_GenerateSTOP(I2Cx,ENABLE); return -2; } if(I2C_GetFlagStatus(I2Cx,I2C_FLAG_BTF==SET)) { break; } } I2C_GenerateSTOP(I2Cx,ENABLE); return -2; } 这段程序有什么错误
08-27
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值