janeyqian

    1. STM8S103的读保护让我疯了 13/10427 stm32/stm8 2010-09-24
                                       楼主要冷静
    2. 温度检测 DS18B20 ??/ 8/4051 嵌入式系统 2010-07-01
      msp430的DS18B20程序。修改下就可以用了 #include typedef unsigned char uchar; typedef unsigned int  uint; #define DQ1 P1OUT |= BIT6 #define DQ0 P1OUT &= ~BIT6 #define DQ_in   P1DIR &= ~BIT6 #define DQ_out  P1DIR |= BIT6 #define DQ_val  (P1IN & BIT6) /******************************************* 函数名称:DelayNus 功    能:实现N个微秒的延时 参    数:n--延时长度 返回值  :无 说明    :定时器A的计数时钟是1MHz,CPU主频8MHz           所以通过定时器延时能够得到极为精确的           us级延时 ********************************************/ void DelayNus(uint n) {     CCR0 = n;     TACTL |= MC_1;           //增计数到CCR0     while(!(TACTL & BIT0));   //等待     TACTL &= ~MC_1;          //停止计数     TACTL &= ~BIT0;          //清除中断标志 } /******************************************* 函数名称:Init_18B20 功    能:对DS18B20进行复位操作 参    数:无 返回值  :初始化状态标志:1--失败,0--成功 ********************************************/ uchar Init_18B20(void) {     uchar Error;         DQ_out;     _DINT();     DQ0;     DelayNus(500);     DQ1;     DelayNus(55);     DQ_in;     _NOP();     if(DQ_val)           {         Error = 1;          //初始化失败     }     else     {         Error = 0;          //初始化成功     }     DQ_out;     DQ1;     _EINT();         DelayNus(400);         return Error; } /******************************************* 函数名称:Write_18B20 功    能:向DS18B20写入一个字节的数据 参    数:wdata--写入的数据 返回值  :无 ********************************************/ void Write_18B20(uchar wdata) {     uchar i;         _DINT();     for(i = 0; i < 8;i++)     {         DQ0;         DelayNus(6);            //延时6us         if(wdata & 0X01)    DQ1;         else                DQ0;         wdata >>= 1;         DelayNus(50);           //延时50us         DQ1;         DelayNus(10);           //延时10us     }     _EINT(); } /******************************************* 函数名称:Read_18B20 功    能:从DS18B20读取一个字节的数据 参    数:无 返回值  :读出的一个字节数据 ********************************************/ uchar Read_18B20(void) {     uchar i;     uchar temp = 0;         _DINT();     for(i = 0;i < 8;i++)     {         temp >>= 1;         DQ0;         DelayNus(6);            //延时6us         DQ1;         DelayNus(8);            //延时9us         DQ_in;         _NOP();         if(DQ_val)   temp |= 0x80;         DelayNus(45);           //延时45us         DQ_out;         DQ1;         DelayNus(10);           //延时10us     }     _EINT();         return  temp; } /******************************************* 函数名称:Skip 功    能:发送跳过读取产品ID号命令 参    数:无 返回值  :无 ********************************************/ void Skip(void) {     Write_18B20(0xcc); } /******************************************* 函数名称:Convert 功    能:发送温度转换命令 参    数:无 返回值  :无 ********************************************/ void Convert(void) {     Write_18B20(0x44); } /******************************************* 函数名称:Read_SP 功    能:发送读ScratchPad命令 参    数:无 返回值  :无 ********************************************/ void Read_SP(void) {     Write_18B20(0xbe); } /******************************************* 函数名称:ReadTemp 功    能:从DS18B20的ScratchPad读取温度转换结果 参    数:无 返回值  :读取的温度数值 ********************************************/ uint ReadTemp(void) {     uchar temp_low;     uint  temp;         temp_low = Read_18B20();      //读低位     temp = Read_18B20();     //读高位     temp = (temp
    3. MSP430 多脉冲捕获 6/5448 微控制器 MCU 2010-06-23
      不会吧 TA的CCR0~CCR2,TB的TBCCR0~TBCCR6就是用来存数的,这么多寄存器,同时捕捉再多几个也没问题!
    4. 有关CE5.0上的内存泄露问题 12/4557 嵌入式系统 2010-06-11
      引用 7 楼 wang19847277 的回复: 我用CE5,用SQLCE2.0数据库,长时间后,系统容易死掉,是不是内存问题呢,我释放了啊
      这种情况,极有可能是内存的问题
    5.                                  晕,在待机模式下......甚至是随便用一根导电的轻轻一碰任意一个无关的管脚,都会触发复位事件(或者是WAKE UP事件)
    6. 更正一下,不是内置的6db,而是该芯片要求外接两个100欧电阻构成6dB的同相放大器,以达到50欧阻抗匹配和6dB放大的目的,上图把这两个前置运放接成跟随器了。
    7. 真的不用单片机做呀,有专用的IC一大把啦,用BISS0001也可以,我之前做过,一个BISS0001+热释电红外传感器 再加上自己焊的外围电路就行啦,电路图网上也很易找也挺多样。网上也有成品的模块呀,一个大概15元左右~~
    8. 你说的能显示,应该是超级终端的回显功能,如果利用串口发送文件,需要设置一下,包括协议和比特率等
    9. 学习学习
    10. 应该是在OAL中,OAL中会进行板级初始化
    11. 谢谢,试过了,出错了,但是不知道哪的的问题。。。。
    12. STC单片机编程出错是啥原因? 13/5883 嵌入式系统 2010-03-16
      STC的内部EEPROM其实也是FLASH,其数据手册上有读写方法。程序代码容量有限制,点阵屏显示数据大小要算进去,不要超过单片机存储空间,否则当然会出错。 一般如字库较大需外扩一片容量稍大的FLASH的。
    13. wince下软件加密?? 17/7683 WindowsCE 2010-03-11
      你首先要解决的是,如何通过软件判断这台机器和那台机器是不同的?
    14. 91要加班到几号?回复内容太短了!
    15. 6410 MLC 如何才能从nandflash启动 20/9255 嵌入式系统 2010-02-05
      LZ的GPC[5..7]为011,没问题吧。 NBL1的位置没错,NBL2的位置要看你NBL1中代码的设置了。 另外有加调试信息打印吗?NBL1是否有起来??? 你可以先调一下NBL1看看: 1. 烧写进入Nand以后,再读出来看看,Block0的page0和Page1中这8k数据是否跟烧入的一样? 2. 上电后用AXD之类Jtag工具看看RAM地址为0-2000的代码(CPU自动加载的地方)是否跟Block0image.nb0前面两个page一样??如果一样,说明已经有加载进去了。并且是nand启动。
    16. 引用 4 楼 cfanlwn 的回复: 不知道这个培训机构,不过一般培训 只能入门,学一些基础的理论东西,至于实践,还是要靠自己积累的
      这个我知道,我是下定决心要做嵌入式了,看来只能通过培训来跨进门了
    17. 高人请指点 13/5262 嵌入式系统 2010-01-06
      SZSZ.C(9): error C141: syntax error near '=', expected ')' 这些昨天有人提了同样的帖子,是由于你的逗号 是在中文输入法的情况下输入的; 楼主把对应的输入法改为英语,再输入逗号。
    18. 请教STM32初始化延时问题 18/6137 stm32/stm8 2009-12-24
                                       既然这样,你就在开始操作FRAM之前通过一个I/O口输出一个脉冲,用示波器观察VDD与这个脉冲的关系,这样就可以准确地知道从上电至开始操作FRAM时的时间,从而可以精确地知道是否确实是由于上电延迟的问题了。
    19. STM32GPIO不受控? 7/4096 stm32/stm8 2009-12-04
                                       整段代码贴上来,寻求帮助。 void  BSP_Init(void) {           /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------*/              /* RCC system reset(for debug purpose) */           RCC_DeInit();           /* Enable HSE */           RCC_HSEConfig(RCC_HSE_ON);           /* Wait till HSE is ready */           HSEStartUpStatus = RCC_WaitForHSEStartUp();           if(HSEStartUpStatus == SUCCESS)     {             /* Enable Prefetch Buffer */              FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);             /* Flash 2 wait state */             FLASH_SetLatency(FLASH_Latency_2);                /* HCLK = SYSCLK */             RCC_HCLKConfig(RCC_SYSCLK_Div1);                /* PCLK2 = HCLK */             RCC_PCLK2Config(RCC_HCLK_Div1);               /* PCLK1 = HCLK/2 */             RCC_PCLK1Config(RCC_HCLK_Div2);             /* PLLCLK = 8MHz * 9 = 72 MHz */             RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);             /* Enable PLL */             RCC_PLLCmd(ENABLE);              /* Wait till PLL is ready */              while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)                {                }              /* Select PLL as system clock source */              RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);              /* Wait till PLL is used as system clock source */              while(RCC_GetSYSCLKSource() != 0x08)               {               }     }         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);            RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP|RCC_APB1Periph_PWR,ENABLE);            PWR_BackupAccessCmd(ENABLE);            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC          | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE            | RCC_APB2Periph_AFIO, ENABLE);         GPIO_PinRemapConfig( GPIO_Remap_SWJ_JTAGDisable , ENABLE );         GPIO_Config();         SysTick_Config();                                           } static void SysTick_Config(void) {     RCC_ClocksTypeDef  rcc_clocks;     unsigned long         cnts;     RCC_GetClocksFreq(&rcc_clocks);     cnts = (unsigned long)rcc_clocks.HCLK_Frequency/1000;     SysTick_SetReload(cnts);     SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);     SysTick_CounterCmd(SysTick_Counter_Enable);     SysTick_ITConfig(ENABLE); } int main(void) {         u32 i;         u8 flag=0;            BSP_Init();         GPIO_SetBits(GPIOA, GPIO_Pin_14);         GPIO_SetBits(GPIOB, GPIO_Pin_7); //        LIS33_Configuration();                 SPI_LIS33_CS_LOW();         while(1)         { //                Parse_Lis33();                 SPI_LIS33_CS_HIGH();                 GPIO_SetBits(GPIOA, GPIO_Pin_All);                 for(i=0;i<100000*100;i++)                         ;                 SPI_LIS33_CS_LOW();                 GPIO_ResetBits(GPIOA, GPIO_Pin_All);                 if(flag==0)                 {                            GPIO_ResetBits(GPIOC,GPIO_Pin_5);                         flag=1;                 }                 else                 {                         GPIO_SetBits(GPIOC, GPIO_Pin_5);                         flag=0;                 }         }            return 1;                                                 } void GPIO_Config(void) {           GPIO_InitTypeDef GPIO_InitStructure;           GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;           GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//GPIO_Mode_AF_PP;           GPIO_Init(GPIOA, &GPIO_InitStructure);           GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6;           GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出           GPIO_Init(GPIOC,&GPIO_InitStructure);           GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;           GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;           GPIO_Init(GPIOB, &GPIO_InitStructure); }
    20. 2440官方bsp中mmu打开问题? 31/10139 嵌入式系统 2009-11-09
      我的pts好像是放置   g_oalAddressTable 表的?? 这是开启mmu之前的代码?? 不知道你的16k是什么数据? add     r11, pc, #g_oalAddressTable - (. + 8)         ldr     r10, =PTs                ; (r10) = 1st level page table

最近访客

< 1/1 >

统计信息

已有84人来访过

  • 芯积分:--
  • 好友:--
  • 主题:15
  • 回复:63

留言

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


现在还没有留言