你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

st-img
chrome
st-img
firefox
st-img
safari
st-img
ie8及以上
shequ.stmicroelectronics.cn
  • ST意法半导体官网
  • STM32中文官网
  • ST全球论坛
登录/注册
  • 首页
  • 技术问答
  • 话题
  • 资源
  • 创客秀
  • 视频
  • 标签
  • 积分商城
  • 每日签到
梅子-395796

梅子-395796

 

回答数 0 关注数 0
关注 私信
  • 动态99
  • 提问
  • 回答0
  • 创客秀 0
  • 分享 0
  • 关注0
1 回答

关于STC89c52单片机eeprom的双字节读写问题

未设置标签
愚民点子 愚民点子 回答时间: 2013-11-17 18:51

给你一个双字节读写程序 union double_byte {         uint long_data;         uchar single[2]; }segment; uchar Byte_Read(uint addr);                //读一字节,调用前需打开ISP 功能 void Byte_Program(uint addr ,uchar Write_data);        //字节编程,调用前需打开ISP 功能 void Sector_Erase(uint add);                        //擦除扇区 void Isp_disable(void) {        ISP_CONTR = 0;                //禁止ISP/IAP 操作         ISP_CMD = 0;                //去除ISP/IAP 命令         ISP_TRIG = 0;                //防止 ISP/IAP 命令误触发         ISP_ADDRH = 0xff;        //地址指向非EEPROM地址区,防止误操作         ISP_ADDRL = 0xff;        //地址指向非EEPROM地址区,防止误操作 } //读一字节,调用前需打开ISP 功能,入口PTR = 字节地址,返回:A = 读出字节 uchar Byte_Read(uint addr) {         uchar Read_ISP_DATA;         ISP_ADDRL = addr;            //地址低位         ISP_ADDRH = addr>>8;    //送地址高位         EA = 0;                /* 关中断 */         ISP_CONTR = 0x81;      /*20M,是0x80 orl 1 */         ISP_CMD = 1;           // 1表示字节读         ISP_TRIG = 0x46;       //先送0x46再送 0xb9 ISP/IAP 触发寄存器,每次都需要如此         ISP_TRIG = 0xb9;       //送完0xb9后 ISP/IAP 立即被触发启动         _nop_();               //空指令         _nop_();               //空指令         Isp_disable();                 EA = 1;                            /* 开中断 */         Read_ISP_DATA=ISP_DATA;         return(Read_ISP_DATA); } uint double_byte_Read(uint addr) {        uchar byte_h, byte_l;         byte_h=Byte_Read(addr);         byte_l=Byte_Read(addr+1);         segment.single[0]=byte_h;         segment.single[1]=byte_l;         return(segment.long_data); } //字节编程,调用前需打开IAP 功能,入口PTR = 字节地址, A= 须编程字节的数据 void Byte_Program(uint addr ,uchar Write_data) {        ISP_DATA = Write_data;         ISP_ADDRL = addr;            //地址低位         ISP_ADDRH = addr>>8;    //送地址高位         EA =  0;                     /* 关中断 */         ISP_CONTR = 0x81;               ISP_CMD = 2;                //送扇区命令         ISP_TRIG = 0x46;         ISP_TRIG = 0xb9;         _nop_();         _nop_();         Isp_disable();                 EA = 1;                    /* 开中断 */ } void double_byte_write(uint addr ,uint Write_data) {        uchar byte_h, byte_l;         segment.long_data=Write_data;         byte_h = segment.single[0];         byte_l = segment.single[1];         Byte_Program(addr,byte_h);         Byte_Program(addr+1,byte_l); }

赞0
1 回答

stm32 spi2 nrf24l01+ 通信的奇怪问题

未设置标签
废鱼 废鱼 回答时间: 2013-10-22 09:56

请问用的是SPI模块还是模拟SPI?

赞0
3 回答

stm32f4 fsmc sram时序计算

未设置标签
狼 狼 回答时间: 2013-9-27 16:06

大哥 看stm32F4的datesheet sram章节,介绍的比较详细的

赞0
8 回答

关于stm32的SysTick_Handler()等中断处理函数的重复定义的问题

未设置标签
fczjj fczjj 回答时间: 2022-9-21 10:49

1111111111111

赞0
梅子-395796 梅子-395796


阅读作者更多的帖子

所在话题

参与活动

  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16