当前位置: 首页 > news >正文

某公司人事管理网站开发网络科技公司属于什么行业

某公司人事管理网站开发,网络科技公司属于什么行业,代理注册公司是不是要户口本,ssh wordpress1.使能GPIOF时钟 2.将PF14设置为输出#xff0c;PF15也可以先设置为输出 3.设置输出速度最高档位速度 4.SI7006的初始化 5.读取温度、湿度 6.将读取到的温度湿度数据通过计算公式进行转换 7.将结果输出 main.c #include si7006.hextern void printf(cons…1.使能GPIOF时钟 2.将PF14设置为输出PF15也可以先设置为输出 3.设置输出速度最高档位速度 4.SI7006的初始化 5.读取温度、湿度 6.将读取到的温度湿度数据通过计算公式进行转换 7.将结果输出  main.c #include si7006.hextern void printf(const char *fmt,...);void delay(int ms){int i,j;for(i0;ims;i){for(j0;j2000;j);}}int main(){unsigned short tem;//用于保存 温度数据和湿度数据unsigned short hum;//进行SI7e06的初始化si7006_init();while(1){//读取温度temsi7006_read_data( 0x40,0XE0);humsi7006_read_data(0x40,0XE5);//读取湿度//数据转换temtem*175.72/65536-46.85;humhum*125/65536-6;//数据输出printf(tem:%d\n,tem);printf(hum:%d\n,hum);delay(1000);}return 0;} iic.c #include iic.hextern void printf(const char* fmt, ...); /** 函数名 delay_us* 函数功能延时函数* 函数参数无* 函数返回值无* */ void delay_us(void) {unsigned int i 2000;while(i--); } /** 函数名 i2c_init* 函数功能 i2C总线引脚的初始化 通用输出推挽输出输出速度* 函数参数无* 函数返回值无* */ void i2c_init(void) {// 使能GPIOF端口的时钟RCC-MP_AHB4ENSETR | (0x1 5);// 设置PF14PF15引脚为通用的输出功能GPIOF-MODER (~(0xF 28));GPIOF-MODER | (0x5 28);// 设置PF14, PF15引脚为推挽输出GPIOF-OTYPER (~(0x3 14));// 设置PF14, PF15引脚为高速输出GPIOF-OSPEEDR | (0xF 28);// 设置PF14, PF15引脚的禁止上拉和下拉GPIOF-PUPDR (~(0xF 28));// 空闲状态SDA和SCL拉高 I2C_SCL_H;I2C_SDA_H; }/** 函数名i2c_start* 函数功能模拟i2c开始信号的时序* 函数参数无* 函数返回值无* */ void i2c_start(void) {/** 开始信号时钟在高电平期间数据线从高到低的变化* --------* SCL \* --------* ----* SDA \* --------* */ //保证数据线PF15是输出SET_SDA_OUT;//空闲状态时钟线和数据线拉高I2C_SCL_H;I2C_SDA_H;delay_us();I2C_SDA_L;//数据线拉低delay_us();I2C_SCL_L;//时钟线拉低此时I2C总线处于占用状态 }/** 函数名i2c_stop* 函数功能模拟i2c停止信号的时序* 函数参数无* 函数返回值无* */void i2c_stop(void) {/** 停止信号 时钟在高电平期间数据线从低到高的变化 * ----------* SCL /* --------* --- -------* SDA X /* --- -------* *///可能为高电平也可能是低电平应答或非应答SET_SDA_OUT;I2C_SCL_L;//方便讲数据线电频拉低delay_us();I2C_SDA_L;delay_us();I2C_SCL_H;delay_us();I2C_SDA_H;}/** 函数名 i2c_write_byte* 函数功能主机向i2c总线上的从设备写8bits数据* 函数参数dat : 等待发送的字节数据* 函数返回值 无* */void i2c_write_byte(unsigned char dat) {/** 数据信号时钟在低电平期间发送器向数据线上写入数据* 时钟在高电平期间接收器从数据线上读取数据 * ---- --------* SCL \ / \* -------- --------* -------- ------------------ ---* SDA X X* -------- ------------------ ---** 先发送高位在发送低位 * *///确保SDA是输出状态 PF15输出SET_SDA_OUT;unsigned int i;for(i0;i8;i){//时钟线拉低I2C_SCL_L;delay_us();//延时//0X3A-0011 1010 0X80-10000000if(dat0X80)//最高位为1{//发送1I2C_SDA_H;}else //最高位为0{I2C_SDA_L;//发送0}delay_us();//延时//时钟线拉高接收器接收I2C_SCL_H;delay_us();//延时,用于等待接收器接收数据delay_us();//延时//将数据左移一位让原来第6位变为第7位dat dat1;}}/** 函数名i2c_read_byte* 函数功能 主机从i2c总线上的从设备读8bits数据, * 主机发送一个应答或者非应答信号* 函数参数 0 应答信号 1 非应答信号* 函数返回值读到的有效数据** */ unsigned char i2c_read_byte(unsigned char ack) {/** 数据信号时钟在低电平期间发送器向数据线上写入数据* 时钟在高电平期间接收器从数据线上读取数据 * ---- --------* SCL \ / \* -------- --------* -------- ------------------ ---* SDA X X* -------- ------------------ ---** 先接收高位 在接收低位 * */unsigned int i;unsigned char dat;//保存接受的数据//将数据线设置为输入SET_SDA_IN;for(i0;i8;i){//先把时钟线拉低等一段时间保证发送器发送完毕数据I2C_SCL_L;delay_us();delay_us();//保证发送器发送完数据//时钟线拉高读取数据I2C_SCL_H; delay_us();datdat1;//数值左移 0000 0000if(I2C_SDA_READ)//pf15管脚得到了一个高电平输入{dat |1; //0000 0110}else{dat (~0X1);}delay_us();}if(ack){i2c_nack();//发送非应答信号不再接收下一次数据}else{i2c_ack();//发送应答信号 }return dat; } /** 函数名 i2c_wait_ack* 函数功能 主机作为发送器时等待接收器返回的应答信号* 函数参数无* 函数返回值* 0接收到的应答信号* 1接收到的非应答信号* */ unsigned char i2c_wait_ack(void) {/** 主机发送一个字节之后从机给主机返回一个应答信号** -----------* SCL / M:读 \* ------------- --------* --- ---- --------------------* SDA X X* --- --------------------* 主 释 从机 主机* 机 放 向数据 读数据线* 总 线写 上的数据* 线 数据* */ //时钟线拉低接收器可以发送信号I2C_SCL_L;I2C_SDA_H;//先把数据线拉高当接收器回应应答信号时数据线会拉低delay_us();SET_SDA_IN;//设置数据线为输入delay_us();//等待接收方向数据线写入delay_us();I2C_SCL_H;//用于读取数据线数据if(I2C_SDA_READ)//PF15得到一个高电平输入收到非应答信号return 1;//应答信号I2C_SCL_L;//时钟线拉低让数据线处于占用状态return 0;//非应答信号 } /** 函数名 iic_ack* 函数功能 主机作为接收器时给发送器发送应答信号* 函数参数无* 函数返回值无* */ void i2c_ack(void) {/* --------* SCL / \* ------- ------* ---* SDA X * --- -------------* *///保证数据线是输出SET_SDA_OUT;I2C_SCL_L;//拉低时钟线delay_us();I2C_SDA_L;//数据线拉低表示应答信号delay_us();I2C_SCL_H;//时钟线拉高等待发送器读取应答信号delay_us();delay_us();I2C_SCL_L;//数据线处于占用状态发送器发送下一次数据 } /** 函数名 iic_nack* 函数功能 主机作为接收器时给发送器发送非应答信号* 函数参数无* 函数返回值无* */ void i2c_nack(void) {/* --------* SCL / \* ------- ------* --- ---------------* SDA X * --- * *///保证数据线是输出SET_SDA_OUT;I2C_SCL_L;//拉低时钟线delay_us();I2C_SDA_H;//数据线拉高表示非应答信号delay_us();I2C_SCL_H;//时钟线拉高等待发送器读取应答信号delay_us();delay_us();I2C_SCL_L;//数据线处于占用状态发送器发送下一次数据 } si7006.c #include iic.h #include si7006.h extern void delay(unsigned int ms); /** 函数名si7006_init* 函数功能SI7006芯片的初始化* 函数参数无* 函数返回值无 */ void si7006_init(void) {i2c_init();i2c_start();i2c_write_byte(SI7006_SLAVE 1);i2c_wait_ack();i2c_write_byte(0xE6);i2c_wait_ack();//芯片初始化i2c_write_byte(0x3A);i2c_wait_ack();i2c_stop();} /** 函数名si7006_read_data* 函数功能读取SI7006的转换结果* 函数参数* slave_addr 从机地址* reg_addr 寄存器地址* 函数返回值无 */ short si7006_read_data(unsigned char slave_addr, unsigned char reg_addr) {short dat;unsigned char dat_h, dat_l;i2c_start();//写i2c_write_byte(slave_addr 1);i2c_wait_ack();i2c_write_byte(reg_addr);i2c_wait_ack();i2c_start();//读i2c_write_byte((slave_addr 1) | 1);i2c_wait_ack();delay(10); // 等待转换结束dat_h i2c_read_byte(0);//读取高八位数据响应一个应答信号dat_l i2c_read_byte(1);i2c_stop();dat dat_h;dat 8;dat | dat_l;return dat; } iic.h #ifndef __IIC_H__ #define __IIC_H__ #include stm32mp1xx_gpio.h #include stm32mp1xx_rcc.h #include gpio.h /* 通过程序模拟实现I2C总线的时序和协议* GPIOF --- AHB4* I2C1_SCL --- PF14* I2C1_SDA --- PF15** */#define SET_SDA_OUT do{GPIOF-MODER (~(0x3 30)); \GPIOF-MODER | (0x1 30);}while(0) #define SET_SDA_IN do{GPIOF-MODER (~(0x3 30));}while(0)#define I2C_SCL_H do{GPIOF-BSRR | (0x1 14);}while(0) #define I2C_SCL_L do{GPIOF-BRR | (0x1 14);}while(0)#define I2C_SDA_H do{GPIOF-BSRR | (0x1 15);}while(0) #define I2C_SDA_L do{GPIOF-BRR | (0x1 15);}while(0)#define I2C_SDA_READ (GPIOF-IDR (0x1 15))void delay_us(void); void i2c_init(void); void i2c_start(void); void i2c_stop(void); void i2c_write_byte(unsigned char dat); unsigned char i2c_read_byte(unsigned char ack); unsigned char i2c_wait_ack(void); void i2c_ack(void); void i2c_nack(void);#endif si7006.h #ifndef __SI7006_H__ #define __SI7006_H__#include iic.h #define SI7006_SLAVE 0x40void si7006_init(void);short si7006_read_data(unsigned char slave_addr, unsigned char reg_addr);#endif //__SI7006_H__
http://www.zqtcl.cn/news/889077/

相关文章:

  • 承德做网站设计的网络推广主要内容
  • 婚纱网站源代码重庆网站定制公司
  • 同一个ip网站太多 seo应用商店网站源码
  • 网站内容框架首页>新闻>正文 网站怎么做
  • 网站制作 搜索做效果图网站有哪些
  • 网站建设的相关技术网站的购物车怎么做
  • 免费建设公司网站腾讯云域名购买
  • 淘宝客网站应该怎么做网页浏览器推荐
  • 怎样做影视网站不侵权商丘专业做网站
  • 哪个网站做刷手最好鹤壁 网站建设
  • 设计接单子网站安徽网站开发推荐
  • 网站建设制作 优帮云怎样注册商标申请
  • 网站怎么做交易市场苏州吴江做网站公司
  • wordpress的字体禁用优化设计的答案
  • 网站建设开发五行属性如何做二级域名网站
  • 珠海做网站的公司介绍最近的新闻大事
  • 手机网站开发解决方案石碣镇网站建设
  • 保定网站建设公司哪家好app开发公司好吗
  • 网站域名备案证书网页素材大宝库
  • 沈阳网站制作的公司哪家好wordpress您访问的网页出错
  • 南京做公司网站有什么网站用名字做图片大全
  • 网站正在建设中页面wordpress 折叠文章
  • 广西建设科技协会网站手工做环保衣的网站
  • 怎么免费做网站教程开发专业网站
  • 鹿邑网站设计公司什么网站可以免费做找客户
  • wordpress模板站如何安装wordpress 查询语句
  • 给窗帘做网站淄博周村学校网站建设公司
  • 关于志愿者网站开发的论文做什么网站开发好
  • 做电影网站如何规避版权做新年公告图片的网站
  • 网站修改后怎么上传济南网络员