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

网站建设用英语怎么说wordpress 红包

网站建设用英语怎么说,wordpress 红包,可以做英文纵横字谜的网站,织梦网站被植入广告i2c1采用DMA方式的读写函数 1、关于i2c1的DMA的映射如图 2、关于代码的宏定义配置 Application目录的Makefile中 ENABLE_I2C_TEST yes才会编译I2C1的相关代码。 同时修改i2c.h文件#xff0c;定义I2C1_MODE为I2C1_MODE_DMA#xff0c;这样i2c1的配置为dma模式。 #define …i2c1采用DMA方式的读写函数 1、关于i2c1的DMA的映射如图 2、关于代码的宏定义配置 Application目录的Makefile中 ENABLE_I2C_TEST yes才会编译I2C1的相关代码。 同时修改i2c.h文件定义I2C1_MODE为I2C1_MODE_DMA这样i2c1的配置为dma模式。 #define I2C1_MODE I2C1_MODE_DMA3、I2C相关配置外部调用函数供main.c初始化i2c1时使用。 代码如下 void i2c1_dma_init(void) {/* enable GPIOB clock */rcu_periph_clock_enable(RCU_GPIOB);rcu_periph_clock_enable(RCU_DMA0);/* enable I2C1 clock */rcu_periph_clock_enable(RCU_I2C1);/* connect PB10 to I2C1_SCL *//* connect PB11 to I2C2_SDA */gpio_init(GPIOB, GPIO_MODE_AF_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_10 | GPIO_PIN_11);//配置PB10,PB11为复用功能/* configure I2C clock */i2c_clock_config(I2C1, I2C1_SPEED, I2C_DTCY_2);/* configure I2C address */i2c_mode_addr_config(I2C1, I2C_I2CMODE_ENABLE, I2C_ADDFORMAT_7BITS, 0xff);/* enable I2C1 */i2c_enable(I2C1);/* enable acknowledge */i2c_ack_config(I2C1, I2C_ACK_ENABLE); }4、DMA发送函数可发送多字节寄存器数据格式。 static void i2c1_dma_tx_config(uint8_t *p_data,uint8_t len) {dma_parameter_struct dma_init_struct;/* initialize DMA channel3 */dma_deinit(DMA0, DMA_CH3);dma_init_struct.direction DMA_MEMORY_TO_PERIPHERAL;dma_init_struct.memory_addr (uint32_t)p_data;dma_init_struct.memory_inc DMA_MEMORY_INCREASE_ENABLE;dma_init_struct.memory_width DMA_MEMORY_WIDTH_8BIT;dma_init_struct.number len;dma_init_struct.periph_addr (uint32_t)I2C_DATA(I2C1);dma_init_struct.periph_inc DMA_PERIPH_INCREASE_DISABLE;dma_init_struct.periph_width DMA_PERIPHERAL_WIDTH_8BIT;dma_init_struct.priority DMA_PRIORITY_ULTRA_HIGH;dma_init(DMA0, DMA_CH3, dma_init_struct); }static void i2c1_dma_tx_data(uint8_t slave_addr,uint8_t *p_data,uint8_t len) {/* wait until I2C bus is idle */while(i2c_flag_get(I2C1, I2C_FLAG_I2CBSY));/* send a start condition to I2C bus */i2c_start_on_bus(I2C1);/* wait until SBSEND bit is set */while(!i2c_flag_get(I2C1, I2C_FLAG_SBSEND));/* send slave address to I2C bus */i2c_master_addressing(I2C1, slave_addr, I2C_TRANSMITTER);/* wait until ADDSEND bit is set */while(!i2c_flag_get(I2C1, I2C_FLAG_ADDSEND));/* clear the ADDSEND bit */i2c_flag_clear(I2C1,I2C_FLAG_ADDSEND);/* wait until the transmit data buffer is empty */while( SET ! i2c_flag_get(I2C1, I2C_FLAG_TBE));i2c1_dma_tx_config(p_data,len);/* enable I2C1 DMA */i2c_dma_config(I2C1, I2C_DMA_ON);/* enable DMA0 channel3 */dma_channel_enable(DMA0, DMA_CH3);/* DMA0 channel3 full transfer finish flag */while(!dma_flag_get(DMA0, DMA_CH3, DMA_FLAG_FTF));/* send a stop condition to I2C bus */i2c_stop_on_bus(I2C1);/* wait until the stop condition is finished */while(I2C_CTL0(I2C1)0x0200); } /*** 封装一个函数按寄存器写的函数寄存器地址可以有多位。* 数据可以有多个* dma方式 */ void i2c1_dma_send_data(uint8_t slave_addr,uint8_t *reg_addr,uint16_t addr_len,uint8_t *p_data,uint8_t data_len) {uint8_t data[I2C_TX_RX_DATA_LEN_MAX] {0};uint8_t *p;if ((addr_len data_len) I2C_TX_RX_DATA_LEN_MAX){perror(data to long and return\r\n);return ;}p data;memcpy(p,reg_addr,addr_len);p addr_len;memcpy(p,p_data,data_len);i2c1_dma_tx_data(slave_addr,data,(addr_lendata_len));} 5、DMA接收函数封装注意读取一个自己数据的时候不能采用dma的方式在函数中做了判断一个字节的读取继续用poll方式。 uint8_t i2c1_buff_rx[128];static void i2c1_dma_rx_config(uint8_t *p_data,uint8_t len) {dma_parameter_struct dma_init_struct;/* initialize DMA channel4 */dma_deinit(DMA0, DMA_CH4);dma_init_struct.direction DMA_PERIPHERAL_TO_MEMORY;dma_init_struct.memory_addr (uint32_t)p_data;dma_init_struct.memory_inc DMA_MEMORY_INCREASE_ENABLE;dma_init_struct.memory_width DMA_MEMORY_WIDTH_8BIT;dma_init_struct.number len;dma_init_struct.periph_addr (uint32_t)I2C_DATA(I2C1);dma_init_struct.periph_inc DMA_PERIPH_INCREASE_DISABLE;dma_init_struct.periph_width DMA_PERIPHERAL_WIDTH_8BIT;dma_init_struct.priority DMA_PRIORITY_ULTRA_HIGH;dma_init(DMA0, DMA_CH4, dma_init_struct); }void i2c1_dma_receive_data(uint8_t slave_addr, uint8_t *reg_addr,uint16_t addr_len, uint8_t* p_buffer, uint16_t number_of_byte) { /* wait until I2C bus is idle */while(i2c_flag_get(I2C1, I2C_FLAG_I2CBSY));/* send a start condition to I2C bus */i2c_start_on_bus(I2C1);/* wait until SBSEND bit is set */while(!i2c_flag_get(I2C1, I2C_FLAG_SBSEND));/* send slave address to I2C bus */i2c_master_addressing(I2C1, slave_addr, I2C_TRANSMITTER);/* wait until ADDSEND bit is set */while(!i2c_flag_get(I2C1, I2C_FLAG_ADDSEND));/* clear the ADDSEND bit */i2c_flag_clear(I2C1,I2C_FLAG_ADDSEND);/* wait until the transmit data buffer is empty */while(SET ! i2c_flag_get( I2C1 , I2C_FLAG_TBE));/* enable I2C1*/i2c_enable(I2C1);/* send the EEPROMs internal address to write to */while (addr_len){i2c_data_transmit(I2C1, *reg_addr); addr_len--; /* wait until BTC bit is set */while(!i2c_flag_get(I2C1, I2C_FLAG_BTC));}/* send a start condition to I2C bus */i2c_start_on_bus(I2C1);/* wait until SBSEND bit is set */while(!i2c_flag_get(I2C1, I2C_FLAG_SBSEND));/* send slave address to I2C bus */i2c_master_addressing(I2C1, slave_addr, I2C_RECEIVER);/* wait until ADDSEND bit is set */while(!i2c_flag_get(I2C1, I2C_FLAG_ADDSEND));/* clear the ADDSEND bit */i2c_flag_clear(I2C1,I2C_FLAG_ADDSEND);if(number_of_byte 2) {/* disable acknowledge */i2c_ack_config(I2C1, I2C_ACK_DISABLE);/* clear ADDSEND register by reading I2C_STAT0 then I2C_STAT1 register (I2C_STAT0 has already been read) */i2c_flag_get(I2C1, I2C_FLAG_ADDSEND);/* send a stop condition to I2C bus*/i2c_stop_on_bus(I2C1);/* wait for the byte to be received */while(!i2c_flag_get(I2C1, I2C_FLAG_RBNE));/* read the byte received from the EEPROM */*p_buffer i2c_data_receive(I2C1);/* decrement the read bytes counter */number_of_byte--; } else{i2c1_dma_rx_config(p_buffer,number_of_byte);i2c_dma_last_transfer_config(I2C1, I2C_DMALST_ON);/* enable I2C1 DMA */i2c_dma_config(I2C1, I2C_DMA_ON);/* enable DMA0 channel5 */dma_channel_enable(DMA0, DMA_CH4);/* wait until BTC bit is set */while(!dma_flag_get(DMA0, DMA_CH4, DMA_FLAG_FTF));}/* wait until the stop condition is finished */while(I2C_CTL0(I2C1)0x0200);i2c_stop_on_bus(I2C1);/* enable acknowledge */i2c_ack_config(I2C1,I2C_ACK_ENABLE);i2c_ackpos_config(I2C1,I2C_ACKPOS_CURRENT);}5、main.c中调用往eeprom中写入{0x02,0x07,0x05,0x45,0x56,0x89,0xF3然后读出来看看是否一致。 uint8_t addr 0x00; unsigned char data[7] {0x02,0x07,0x05,0x45,0x56,0x89,0xF3}; i2c1_dma_init(); i2c1_dma_send_data(0xA0,addr,1,data,7);delay_1ms(200); unsigned char r_data[7]; i2c1_dma_receive_data(0xA0,addr,1,r_data,7); print_register_value(r_data,7);读出来是一样的 6、代码路径https://gitee.com/xiaoguo-tec_0/gd32-iap-code.git
文章转载自:
http://www.morning.tsynj.cn.gov.cn.tsynj.cn
http://www.morning.nllst.cn.gov.cn.nllst.cn
http://www.morning.tqrbl.cn.gov.cn.tqrbl.cn
http://www.morning.yfmwg.cn.gov.cn.yfmwg.cn
http://www.morning.kpxnz.cn.gov.cn.kpxnz.cn
http://www.morning.xczyj.cn.gov.cn.xczyj.cn
http://www.morning.xgzwj.cn.gov.cn.xgzwj.cn
http://www.morning.smxyw.cn.gov.cn.smxyw.cn
http://www.morning.jbkcs.cn.gov.cn.jbkcs.cn
http://www.morning.gwsll.cn.gov.cn.gwsll.cn
http://www.morning.xldpm.cn.gov.cn.xldpm.cn
http://www.morning.ksqyj.cn.gov.cn.ksqyj.cn
http://www.morning.nbpqx.cn.gov.cn.nbpqx.cn
http://www.morning.txlxr.cn.gov.cn.txlxr.cn
http://www.morning.nccyc.cn.gov.cn.nccyc.cn
http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn
http://www.morning.sqqpb.cn.gov.cn.sqqpb.cn
http://www.morning.qqrqb.cn.gov.cn.qqrqb.cn
http://www.morning.yfcyh.cn.gov.cn.yfcyh.cn
http://www.morning.yfmxn.cn.gov.cn.yfmxn.cn
http://www.morning.ljzgf.cn.gov.cn.ljzgf.cn
http://www.morning.nxzsd.cn.gov.cn.nxzsd.cn
http://www.morning.cfynn.cn.gov.cn.cfynn.cn
http://www.morning.lxhrq.cn.gov.cn.lxhrq.cn
http://www.morning.cgmzt.cn.gov.cn.cgmzt.cn
http://www.morning.jpkk.cn.gov.cn.jpkk.cn
http://www.morning.yjprj.cn.gov.cn.yjprj.cn
http://www.morning.gtnyq.cn.gov.cn.gtnyq.cn
http://www.morning.hcsnk.cn.gov.cn.hcsnk.cn
http://www.morning.hsrpc.cn.gov.cn.hsrpc.cn
http://www.morning.jtybl.cn.gov.cn.jtybl.cn
http://www.morning.glxmf.cn.gov.cn.glxmf.cn
http://www.morning.pzcjq.cn.gov.cn.pzcjq.cn
http://www.morning.rnfwx.cn.gov.cn.rnfwx.cn
http://www.morning.cnvlog.cn.gov.cn.cnvlog.cn
http://www.morning.jkcpl.cn.gov.cn.jkcpl.cn
http://www.morning.ldqrd.cn.gov.cn.ldqrd.cn
http://www.morning.lrnfn.cn.gov.cn.lrnfn.cn
http://www.morning.wcrcy.cn.gov.cn.wcrcy.cn
http://www.morning.mbnhr.cn.gov.cn.mbnhr.cn
http://www.morning.dxqfh.cn.gov.cn.dxqfh.cn
http://www.morning.hyfrd.cn.gov.cn.hyfrd.cn
http://www.morning.zrqs.cn.gov.cn.zrqs.cn
http://www.morning.rgzc.cn.gov.cn.rgzc.cn
http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn
http://www.morning.zdnrb.cn.gov.cn.zdnrb.cn
http://www.morning.lnyds.cn.gov.cn.lnyds.cn
http://www.morning.wbnsf.cn.gov.cn.wbnsf.cn
http://www.morning.jggr.cn.gov.cn.jggr.cn
http://www.morning.knlgk.cn.gov.cn.knlgk.cn
http://www.morning.ffwrq.cn.gov.cn.ffwrq.cn
http://www.morning.xxlz.cn.gov.cn.xxlz.cn
http://www.morning.tnyanzou.com.gov.cn.tnyanzou.com
http://www.morning.ffksr.cn.gov.cn.ffksr.cn
http://www.morning.djpgc.cn.gov.cn.djpgc.cn
http://www.morning.cfybl.cn.gov.cn.cfybl.cn
http://www.morning.ljbch.cn.gov.cn.ljbch.cn
http://www.morning.knjj.cn.gov.cn.knjj.cn
http://www.morning.yrcxg.cn.gov.cn.yrcxg.cn
http://www.morning.dcccl.cn.gov.cn.dcccl.cn
http://www.morning.rjynd.cn.gov.cn.rjynd.cn
http://www.morning.snygg.cn.gov.cn.snygg.cn
http://www.morning.lpsjs.com.gov.cn.lpsjs.com
http://www.morning.hwcln.cn.gov.cn.hwcln.cn
http://www.morning.cfcdr.cn.gov.cn.cfcdr.cn
http://www.morning.rfxw.cn.gov.cn.rfxw.cn
http://www.morning.mrbzq.cn.gov.cn.mrbzq.cn
http://www.morning.krtky.cn.gov.cn.krtky.cn
http://www.morning.5-73.com.gov.cn.5-73.com
http://www.morning.lkhfm.cn.gov.cn.lkhfm.cn
http://www.morning.rrwft.cn.gov.cn.rrwft.cn
http://www.morning.qyxnf.cn.gov.cn.qyxnf.cn
http://www.morning.xptkl.cn.gov.cn.xptkl.cn
http://www.morning.rlrxh.cn.gov.cn.rlrxh.cn
http://www.morning.chfxz.cn.gov.cn.chfxz.cn
http://www.morning.xrwsg.cn.gov.cn.xrwsg.cn
http://www.morning.cpnsh.cn.gov.cn.cpnsh.cn
http://www.morning.ncwgt.cn.gov.cn.ncwgt.cn
http://www.morning.rtmqy.cn.gov.cn.rtmqy.cn
http://www.morning.srbbh.cn.gov.cn.srbbh.cn
http://www.tj-hxxt.cn/news/249576.html

相关文章:

  • 接网站开发的公司在线制作图片代码
  • 网站建设公司好哪家好自己做网站花多少钱
  • 手机网站建设规划图东莞网站制作公
  • 网站建设华科技自动更新的网站建设
  • 新闻类网站源码wordpress添加会员等级标识
  • 宁波网站制作计划电商网站开发设计方案
  • 上海的做网站的公司wordpress 启动流程
  • 果洛wap网站建设哪家好株洲做网站的公司
  • 二手交易网站开发系统淮北建设网站
  • 做网站买域名要买几个后缀最安全做网站排名优化有用吗
  • 什么网站可以做投资html语言的特点
  • 寮步网站建设价钱wordpress导航点不开分类
  • 小说网站怎么做宝宝身上出现很多小红疹怎么办
  • 网站后台无法设置药品行业做网站
  • 外贸网站论文网店代理货源网
  • 厦门市建设局与管理局网站wordpress dede
  • 企业网站备案 网站服务内容网站带后台免费下载
  • 网站建设三方协议佛山乐从网站建设
  • 网站建设公司 网络服务企业管理软件排行榜
  • 企业网站的网页设计wordpress阿里图标库
  • 规划排版网站宁波网站推广建站
  • 杭州服装论坛网站建设网站制作用的软件
  • 张家口外贸网站建设石家庄企业名录大全
  • 免费行情网站中英文的网站开发
  • 长春营销型网站制作网站备案org
  • 怎样查看一个网站的域名秀屿区建设局网站
  • 网站备案通过后怎么办爱站网长尾关键词挖掘工具福利片
  • 建设银行网站怎么基本转个人扬州网页制作公司
  • 网页设计与网站建设考试名词解释吉林做网站
  • 自己做网站最新视频教程一个静态网站多少钱