liede

    1. STM32F107读U盘程序---10多种盘已测试通过 100/39777 stm32/stm8 2010-12-16
                                       很好的资源,先下载了,估计能用上
    2. 版主,IAR下对EEPROM写保护操作报错 18/9532 stm32/stm8 2010-07-13
                                       /******************************************************************************* Copyright (C), 2003-2009, winpark Electronics Co., Ltd. Flie name:         for STM8Sxxx--eeprom Author:                black.lu        Version:        V1.00 Date:                2010-6-29 Description:对STM8系列单片机的内部EEPROM进行操作 *******************************************************************************/ #include "File_Include.h" //---------------------------------------------------------- #define MASS_KEY1        0XAE        //写操作密钥,注意FLASH与EEPROM的密钥相反 #define MASS_KEY2        0X56 //---------------------------------------------------------- /*********************************************************** * 函数:void STM8_EEPROM_Init(void) * 说明:EEPROM的寄存器初始化 * 参数:无 * 输出:无 * 返回:无 ***********************************************************/ void STM8_EEPROM_Init(void) {         //都初始化为默认值         FLASH_CR1=0X00;         FLASH_CR2=0X00;         FLASH_NCR2=0XFF;        } /*********************************************************** * 函数:void STM8_EEPROM_MASS(void) * 说明:对STM8的EEPROM写使能和写保护 * 参数:bool mass_en                 0--写保护                 1--写使能 * 输出:无 * 返回:无 ***********************************************************/ void STM8_EEPROM_MASS(bool mass_en) {         if(mass_en)                //写使能         {                 FLASH_DUKR=MASS_KEY1;                        FLASH_DUKR=MASS_KEY2;                 while(!FLASH_IAPSR_DUL)asm("nop");        //等待硬件置位                }         else                        //写保护         {                 FLASH_IAPSR_DUL=0;                        } } /*********************************************************** * 函数:void STM8_EEPROM_Write_Byte(void) * 说明:EEPROM写一字节函数 * 参数:uint16 address----写入数据的地址                 uint8 dat----写入的一字节数据                 bool mass_en----密钥开启选择 * 输出:无 * 返回:无 ***********************************************************/ void STM8_EEPROM_Write_Byte(uint16 address, uint8 dat, bool mass_en) {         if(mass_en)                //是否需要密钥         {                 STM8_EEPROM_MASS(1);        //密钥使能         }         *((uint8 *)address)=dat;        //写入地址 //        STM8_EEPROM_MASS(0);        //禁止写入,直接在使用时将其禁止 } /*********************************************************** * 函数:uint8 STM8_EEPROM_Read_Byte(uint8 address) * 说明:EEPROM读取地址一字节函数 * 参数:address----需要读取的地址 * 输出:无 * 返回:uint8 ***********************************************************/ uint8 STM8_EEPROM_Read_Byte(uint16 address) {         uint8 lc_dat_buf;         lc_dat_buf=*((uint8 *)address);        //读取偏移地址数据         return lc_dat_buf; } /*********************************************************** * 函数:void STM8_EEPROM_Write_NByte(void) * 说明:EEPROM写N字节函数 * 参数:uint16 address----写入数据的起始地址的地址                 uint8 *p----写入的数据指针                 uint8 n-----写入的个数 * 输出:无 * 返回:无 ***********************************************************/ void STM8_EEPROM_Write_NByte(uint16 address, uint8 *p, uint8 n) {         uint16 lc_adr_buf;         uint8 i;         STM8_EEPROM_MASS(1);        //密钥使能         lc_adr_buf=address;                //起始地址         for(i=0;i<n;i++)         {                 *((uint8 *)lc_adr_buf)=*p;                 lc_adr_buf++;                 p++;         }                STM8_EEPROM_MASS(0);        //禁止写入        } /*********************************************************** * 函数:void STM8_EEPROM_Read_NByte(void) * 说明:EEPROM读N字节函数 * 参数:uint16 address----读取的数据的起始偏移地址                 uint8 *p----读取后存入的首地址                 uint8 n-----读取的个数 * 输出:无 * 返回:无 ***********************************************************/ void STM8_EEPROM_Read_NByte(uint16 address, uint8 *p, uint8 n) {         uint16 lc_adr_buf;         uint8 i;         for(i=0;i<n;i++)         {                 *p=*((uint8 *)lc_adr_buf);                 p++;                 lc_adr_buf++;                                }        }
    3. 关于单片机全局变量初始化的问题 18/8890 嵌入式系统 2010-06-27
      ;------------------------------------------------------------------------- ; STRUCTURE OF THE INITIALIZATION INFORMATION ; ------------------------------------------- ; This section describes the initialization data generated by C51 for ; explicit variable initializations (in segment ?C_INITSEC). ; ; Explicit variable initilizations at C source level are stored by C51 in ; the segment ?C_INITSEC.  All partial segments are combined at linker level ; to one segment.  The segment end value DB 0 is taken from this library module ; INIT.A51. ; ; Structure of the ?C_INITSEC information: ;      (see below) [BYTE]                      ----+  repeated ;       [BYTES depend on Info]      ----+  repeated ;     0x00               [BYTE]    ; ;   has the following format: ; ;  Bit      7  6  5  4  3  2  1  0 ;     T  T  B  L  L  L  L  L    T=Type  B=BIGBIT  L=LENGTH ; ;  If BIGBIT is set, another LENGTH BYTE FOLLOWS.  The LENGHT ;  info of the first byte is then the HIGH part. ; ;  Typ is one of the following: ;  0  := IDATA init values;  the following bytes follow: ;        -  1 byte address ;        -  init data bytes according LENGTH specification ; ;  1  := XDATA init values;  the following bytes follow: ;        -  2 byte address (high byte first) ;        -  init data bytes according LENGTH specification ; ;  2  := PDATA init values;  the following bytes follow: ;        -  1 byte address ;        -  init data bytes according LENGTH specification ; ;  3, BIGBIT=0  := BIT init values; the followign bytes follow: ;        -  1 byte for each bit according LENGTH specification ;           this byte has the following format: ; ;           Bit    7  6  5  4  3  2  1  0 ;                  I  B  B  B  B  B  B  B   I := state of the bit ;                                           B := bit address ; ;  3, BIGBIT=1  := HDATA init values;   the following bytes follow: ;        -  another LENGTH byte (since BIGBIT is always 1) ;        -  3 byte address  (MSB first) ;        -  data bytes according LENGTH specification ; ;----------------------------------------------------------------------
    4. 补救方法1: 再找个微软的东西下载一次,那个软件就会自动跳出来,上次下载的会保存在列表中 方法2:等我晚上回去看看桌面上的快捷方式指向哪里,O(∩_∩)O哈哈~
    5. MC39i GPRS模块开发 9/4459 嵌入式系统 2010-06-11
      怎么办~~?PPP跟UIP怎么融合 ,和怎么下载到单片机上啊?
    6.                                  可能是烧写芯片时把读写保护打开了。
    7. 用I/O模拟可以实现,用硬件i2c模块可实现8的整倍数个
    8. 引用 10 楼 fenglin515 的回复: 不知道动手的过程,需要买个示波器来用吗?
      应该不需要
    9. 向高手 学习
    10. MMU---cp15中c0控制寄存器疑问 4/3546 嵌入式系统 2010-01-31
      高手来帮帮忙啊,弄懂了,高分感激。。 MMU也是嵌入式学习的一道坎啊,这个通了,才能顺行往下做。。。
    11. WWDG进不了中断 10/8648 stm32/stm8 2010-01-25
                                         谢谢你的回贴! 这个我知道,但我看到的例程中都在中断中喂狗, 按这样说,要喂狗一定的进中断,要不进不了中断,WWDG会使CPU复位, 我的意思在哪个地方给程序喂狗呢? 感觉这个WWDG很乱!
    12. 求助关于 C51 的问题 15/4720 嵌入式系统 2010-01-24
      ACC+ACC,就是ACC*2,就是ACC
    13. 新手求教,io口操作 17/6305 嵌入式系统 2010-01-15
      学习了
    14. 关于PICC与中文汉字显示不兼容问题 5/2757 嵌入式系统 2009-12-22
      之前用的PIC的IDE一向存在中文兼容性的问题 相当郁闷。。。
    15. 引用 2 楼 great_bug 的回复: 控制器是什么? MCU? 也许是软件不正确.....在平稳运转时两相的电压该是相同的
      是stc的单片机
    16. 每次关掉功放这种声音消除了,但是每次有音频文件播放时都有尾音,每次播放完后关闭音频TPA一会时间然后再打开还是有这种声音,怎么解决呀?
    17. 嵌入式Web服务器有哪些啊 3/6929 嵌入式系统 2009-11-23
      GoAHead,很好用,我一上午就移植好了
    18. 6410主频如何跑到800MHZ? 27/8131 嵌入式系统 2009-11-06
      高通现在有1G的了....HTC的HD2采用,现在有货了吧..
    19. 串口通信问题 17/5142 嵌入式系统 2009-08-03
      haha,减去80就对了
    20. 征婚启事 149/22767 嵌入式系统 2009-07-13
      帮楼主顶上去,支持.......

最近访客

< 1/1 >

统计信息

已有141人来访过

  • 芯积分:--
  • 好友:--
  • 主题:14
  • 回复:58

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言