/**
* @brief 从I2C1总线上的某一器件的某一起始地址中读取一定字节的数据到数组中
* @param driver_Addr:I2C器件地址
* @param start_Addr:起始字节地址
* @param number_Bytes:要读取的字节数量(小于一页)
* @param read_Buffer:存放读取数据的数组指针
* @retval 是否读取成功
*/
u8 I2C1_Read_NBytes(u8 driver_Addr, u8 start_Addr, u8 number_Bytes, u8 *read_Buffer)
{
uint8_t read_Num;
u8 I2C_Timeout;
I2C_Timeout = 200;
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY) != RESET)
{
if((I2C_Timeout--) == 0)
{
return 1;
}
}
I2C_TransferHandling(I2C1, driver_Addr, 1, I2C_SoftEnd_Mode, I2C_Generate_Start_Write); //I2C_No_StartStop I2C_Generate_Start_Write
I2C_Timeout = 200;
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TXIS) == RESET)
{
if((I2C_Timeout--) == 0)
{
return 1;
}
}
I2C_SendData(I2C1, start_Addr);
I2C_Timeout = 200;
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TC) == RESET)
{
if((I2C_Timeout--) == 0)
{
return 1;
}
}
I2C_TransferHandling(I2C1, driver_Addr, number_Bytes, I2C_AutoEnd_Mode, I2C_Generate_Start_Read);
for(read_Num = 0; read_Num { I2C_Timeout = 200; while(I2C_GetFlagStatus(I2C1, I2C_FLAG_RXNE) == RESET) { if((I2C_Timeout--) == 0) { return 1; } } read_Buffer[read_Num] = I2C_ReceiveData(I2C1); } I2C_Timeout = 200; while(I2C_GetFlagStatus(I2C1, I2C_FLAG_STOPF) == RESET); { if((I2C_Timeout--) == 0) { return 1; } } return 0; } u8 I2C1_Write_NBytes(u8 driver_Addr, u8 start_Addr, u8 number_Bytes, u8 *write_Buffer) { u8 write_Num; u8 I2C_Timeout; I2C_Timeout = 200; while(I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY) != RESET) { if((I2C_Timeout--) == 0) { //I2C_ClearFlag(I2C1, I2C_FLAG_BUSY); return 1; } } I2C_TransferHandling(I2C1, driver_Addr, number_Bytes+1, I2C_AutoEnd_Mode, I2C_Generate_Start_Write); I2C_Timeout = 200; while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TXIS) == RESET) { if((I2C_Timeout--) == 0) { return 1; } } I2C_SendData(I2C1, start_Addr); //while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TXIS) == RESET); //I2C_TransferHandling(I2C1, driver_Addr, number_Bytes, I2C_AutoEnd_Mode, I2C_No_StartStop); for(write_Num = 0; write_Num { I2C_Timeout = 200; while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TXIS) == RESET) { if((I2C_Timeout--) == 0) { return 1; } } I2C_SendData(I2C1, write_Buffer[write_Num]); } I2C_Timeout = 200; while(I2C_GetFlagStatus(I2C1, I2C_FLAG_STOPF) == RESET) { if((I2C_Timeout--) == 0) { return 1; } } return 0; }
上一篇:STM32学习笔记之EXTI(外部中断)
下一篇:STM32F030控制蜂鸣器定时响和控制LED亮
推荐阅读
史海拾趣
面对电子行业的多元化需求,GREEGOO公司选择了智能家居作为其主要发展方向。公司深入调研市场需求,精准定位目标客户群体,推出了一系列具有创新性和实用性的智能家居产品。通过不断优化产品设计和用户体验,GREEGOO在智能家居领域逐渐建立了良好的口碑和品牌形象。随着智能家居市场的不断扩大,GREEGOO的销售额和市场份额也实现了稳步增长。
在电子行业的激烈竞争中,GREEGOO公司凭借其在半导体材料领域的持续创新,成功研发出了一种新型高性能芯片封装材料。这种材料不仅大幅提升了芯片的散热性能和稳定性,还显著降低了生产成本。这一技术突破迅速吸引了业界的关注,多家知名电子产品制造商纷纷与GREEGOO建立合作关系,推动了公司业务的快速增长。GREEGOO因此在电子材料市场上崭露头角,成为行业内的佼佼者。
随着业务的不断拓展,AAC公司意识到美国市场的巨大潜力。于是,在1996年,AAC决定在美国设立分公司,专门负责美国市场的销售。与此同时,为了满足不断增长的市场需求,AAC还在深圳设立了美欧电子有限公司,专门批量生产手机用讯响器。这一系列的举措使得AAC的产品线更加丰富,产能也得到了大幅提升。
进入21世纪,AAC公司继续加大市场拓展力度。2003年,AAC成功拓展了台湾市场,与明基、仁宝电脑和华宇电脑等知名企业建立了合作关系。为了满足这些客户对高品质耳机的需求,AAC开始生产制造耳机产品。这一创新举措不仅丰富了AAC的产品线,也进一步提升了其在电子消费产品市场的竞争力。
随着业务的不断发展和规模的持续扩大,AAC公司在2005年成功在香港交易所上市。这一里程碑式的事件为AAC带来了更多的资本支持和市场认可。此后,AAC加快了全球扩张的步伐,不仅在欧洲、北美等地设立了分支机构,还与众多国际知名品牌建立了长期稳定的合作关系。
随着电子行业的快速发展,对高精度电子元件的需求日益增长。海德汉公司凭借其iTNC系列数控系统的高精度控制能力,成为众多电子元件制造商的首选合作伙伴。某知名电子元件生产商在引入海德汉iTNC 530数控系统后,成功实现了微型电子元件的精密加工,将加工精度提升至微米级,大大提高了产品的质量和市场竞争力。这一合作不仅巩固了海德汉在高精度加工领域的领先地位,也推动了电子行业向更高精度、更高质量方向发展。
大家新年快乐! 我的平台是pxa270+wince5.0. 现在键盘驱动遇到了一点小问题,请大家帮帮忙。 通常键盘上,shift+3应该是显示#号,但是我目前要做的shift+3要显示欧元符号,#被移到其他按键上去了。 我修改了键盘的影射结构,将原来#的位置用欧 ...… 查看全部问答∨ |
|
根据时序要求,我们设定VM/VDEN信号作LCD的ENAB信号,VCLK信号作LCD的NCLK信号。要想得到合适的VM和VCLK波形,就要正确设定寄存器的值,根据寄存器的值与VM和VCLK波形的关系,我们设定了如下关键寄存器的值: HSPW=10;HBPD=100;HFPD=47; VSPW=1;VBPD=37 ...… 查看全部问答∨ |
1PG的#18#17位置设置(1)的设置范围是“0到正负999999”,如果我的伺服驱动器设定每转输入100000个脉冲,那么我能让电机旋转的圈数最多只有9圈多?比如我要电机转15圈,那么每转脉冲数乘以旋转圈数(100000*15=1500000)就超出了设定范围了!如果 ...… 查看全部问答∨ |
6通道(即5+1)球幕投影系统主要是利用投影融合技术、曲面变形处理技术、多机同步技术,通过6台投影机精准定位投影实现的,属于投影类工程项目(以下简称6通道)。 单通道系列数字天象仪主要依靠投影机,球面镜头、计算机和国际规范 ...… 查看全部问答∨ |
|
本帖最后由 ddllxxrr 于 2016-1-7 16:58 编辑 求购 触摸板和EXP430FR5739实验板 价格不讨太贵。 本站强荐:185娱乐ヲ城.足球ヲ真_人.彩票齐全ヲ手机可投ヲ注任何游戏. 首次开户送10元.首存送58元.信誉绝对保证185.cc … 查看全部问答∨ |
LED 散热设计原理及结温等相关技术参数的计算公式 [ 本帖最后由 qwqwqw2088 于 2012-7-23 09:27 编辑 ]… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 一图看懂新能源汽车动力蓄电池回收服务网点建设和运营指南
- Phillips-Medisize 赢得合同, 将生产电子功能组合给药设备
- 贸泽开售Laird Connectivity带功率放大器的BL654PA模块
- 手把手从EasyDL模型训练到EdgeBoard推理
- 光储成本下降 将推动全球分布式储能市场实现20倍增长
- 三大运营商平均日赚约4.3亿元:业绩都备受压力
- 美将福建晋华列入出口管制清单 商务部:停止错误做法
- 国内售价尚未公布,但一加 6T 现已开启预售
- Nokia 6.1 正式推送 Android 9.0 的更新信息,Nokia 7.1 Plus 的Android 9
- 外交部回应:特朗普政府禁止福建晋华从美国购买产品