yangliu

    1.                                  代理商可以给你提供数据。
    2.                                  模拟是没有问题的,我们曾经用12T的51模拟过,不过波特率低一点而已。 关键是整个系统的资源分配是否能够保证,也就是说你又要保证定时器模拟uart口不丢失数据,又要保证其他的功能的实时性,这就是一个平衡点。如果模拟一个估计问题不大,关键你要模拟三个,所以要从整个系统的局面去考虑一下。 单独的讲模拟三个uart是没有问题的。
    3. 关于TIM1互补输出问题 7/6645 stm32/stm8 2010-11-16
                                       多谢大家关心, 我找到原因了, 自己鄙视下。我的输出口那里不是裸口输出,开发板在输出口那里加了个电容接地, 还是自己功力不够。开始我就纳闷,频率越高,波形就越差。才想看看板的输出那里有什么,才发现这个问题。
    4. 请教版主我用KEIL仿真TIM1PWM输出问题 11/8736 stm32/stm8 2010-10-10
                                        /******************** (C) COPYRIGHT 2007 STMicroelectronics ******************** * File Name          : main.c * Author             : MCD Application Team * Date First Issued  : 05/21/2007 * Description        : Main program body ******************************************************************************** * History: * 05/21/2007: V0.3 ******************************************************************************** * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. *******************************************************************************/ /* Includes ------------------------------------------------------------------*/ #include "stm32f10x_lib.h" /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ TIM1_TimeBaseInitTypeDef  TIM1_TimeBaseStructure; TIM1_OCInitTypeDef  TIM1_OCInitStructure; TIM1_BDTRInitTypeDef TIM1_BDTRInitStructure; u16 CCR1_Val = 0x7FF; u16 CCR2_Val = 0x5FF; u16 CCR3_Val = 0x3FF; u16 CCR4_Val = 0x1FF; ErrorStatus HSEStartUpStatus;    /* Private function prototypes -----------------------------------------------*/ void RCC_Configuration(void); void GPIO_Configuration(void); void NVIC_Configuration(void);     /* Private functions ---------------------------------------------------------*/ /******************************************************************************* * Function Name  : main * Description    : Main program * Input          : None * Output         : None * Return         : None *******************************************************************************/ int main(void) { #ifdef DEBUG   debug(); #endif   /* System Clocks Configuration */   RCC_Configuration();   /* NVIC configuration */   NVIC_Configuration();   /* GPIO Configuration */   GPIO_Configuration();   /* TIM1 Configuration ---------------------------------------------------    Generates 7 PWM signals with 4 different duty cycles:    TIM1CLK = 72 MHz, Prescaler = 0x0, TIM1 counter clock = 72 MHz    TIM1 frequency = TIM1CLK/(TIM1_Period + 1) = 17.57 KHz   - TIM1 Channel1 & Channel1N duty cycle = TIM1->CCR1 / (TIM1_Period + 1) = 50%   - TIM1 Channel2 & Channel2N duty cycle = TIM1->CCR2 / (TIM1_Period + 1) = 37.5%   - TIM1 Channel3 & Channel3N duty cycle = TIM1->CCR3 / (TIM1_Period + 1) = 25%   - TIM1 Channel4 duty cycle = TIM1->CCR4 / (TIM1_Period + 1) = 12.5%   ----------------------------------------------------------------------- */   /* TIM1 Peripheral Configuration */   TIM1_DeInit();   /* Time Base configuration */   TIM1_TimeBaseStructure.TIM1_Prescaler = 0x0;   TIM1_TimeBaseStructure.TIM1_CounterMode = TIM1_CounterMode_Up;   TIM1_TimeBaseStructure.TIM1_Period = 0xFFF;   TIM1_TimeBaseStructure.TIM1_ClockDivision = 0x0;   TIM1_TimeBaseStructure.TIM1_RepetitionCounter = 0x0;   TIM1_TimeBaseInit(&TIM1_TimeBaseStructure);   /* Channel 1, 2,3 and 4 Configuration in PWM mode */   TIM1_OCInitStructure.TIM1_OCMode = TIM1_OCMode_PWM2;   TIM1_OCInitStructure.TIM1_OutputState = TIM1_OutputState_Enable;   TIM1_OCInitStructure.TIM1_OutputNState = TIM1_OutputNState_Enable;                     TIM1_OCInitStructure.TIM1_Pulse = CCR1_Val;   TIM1_OCInitStructure.TIM1_OCPolarity = TIM1_OCPolarity_Low;   TIM1_OCInitStructure.TIM1_OCNPolarity = TIM1_OCNPolarity_High;            TIM1_OCInitStructure.TIM1_OCIdleState = TIM1_OCIdleState_Set;   TIM1_OCInitStructure.TIM1_OCNIdleState = TIM1_OCIdleState_Reset;               TIM1_OC1Init(&TIM1_OCInitStructure);   TIM1_OCInitStructure.TIM1_Pulse = CCR2_Val;   TIM1_OC2Init(&TIM1_OCInitStructure);   TIM1_OCInitStructure.TIM1_Pulse = CCR3_Val;   TIM1_OC3Init(&TIM1_OCInitStructure);   TIM1_OCInitStructure.TIM1_Pulse = CCR4_Val;   TIM1_OC4Init(&TIM1_OCInitStructure);   /* TIM1 counter enable */   TIM1_Cmd(ENABLE);   /* TIM1 Main Output Enable */   TIM1_CtrlPWMOutputs(ENABLE);      while(1)   {   }    } /******************************************************************************* * Function Name  : RCC_Configuration * Description    : Configures the different system clocks. * Input          : None * Output         : None * Return         : None *******************************************************************************/ void RCC_Configuration(void) {      /* 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)   {     /* HCLK = SYSCLK */     RCC_HCLKConfig(RCC_SYSCLK_Div1);        /* PCLK2 = HCLK */     RCC_PCLK2Config(RCC_HCLK_Div1);     /* PCLK1 = HCLK/2 */     RCC_PCLK1Config(RCC_HCLK_Div2);     /* Flash 2 wait state */     FLASH_SetLatency(FLASH_Latency_2);     /* Enable Prefetch Buffer */     FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);     /* 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)     {     }   } } /******************************************************************************* * Function Name  : GPIO_Configuration * Description    : Configure the TIM1 Pins. * Input          : None * Output         : None * Return         : None *******************************************************************************/ void GPIO_Configuration(void) {   GPIO_InitTypeDef GPIO_InitStructure;   /* TIM1, GPIOA and GPIOB clock enable */   RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1  | RCC_APB2Periph_GPIOA |                          RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOE |        RCC_APB2Periph_AFIO , ENABLE);   GPIO_PinRemapConfig(GPIO_FullRemap_TIM1,ENABLE);//(改变定时器引脚的映射)     /* GPIOE Configuration: Channel 1, 1N, 2, 2N, 3 and 3N Output */   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;       //推挽输出备用功能   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     //PWM输出IO驱动时钟   GPIO_Init(GPIOE, &GPIO_InitStructure);   /* Lock GPIOE Pin9 to Pin 13 */   GPIO_PinLockConfig(GPIOE, GPIO_Pin_9 | GPIO_Pin_11 | GPIO_Pin_13);//锁定GPIO 引脚配置寄存器   /* GPIOA Configuration: Channel 1, 2, 3 and 4 Output */   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9| GPIO_Pin_10 | GPIO_Pin_11;   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   GPIO_Init(GPIOA, &GPIO_InitStructure);   /* GPIOB Configuration: Channel 1N, 2N and 3N Output */   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;   GPIO_Init(GPIOB, &GPIO_InitStructure); } /******************************************************************************* * Function Name  : NVIC_Configuration * Description    : Configures Vector Table base location. * Input          : None * Output         : None * Return         : None *******************************************************************************/ void NVIC_Configuration(void) { #ifdef  VECT_TAB_RAM     /* Set the Vector Table base location at 0x20000000 */   NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); #else  /* VECT_TAB_FLASH  */   /* Set the Vector Table base location at 0x08000000 */   NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);    #endif } #ifdef  DEBUG /******************************************************************************* * Function Name  : assert_failed * Description    : Reports the name of the source file and the source line number *                  where the assert error has occurred. * Input          : - file: pointer to the source file name *                  - line: assert error line source number * Output         : None * Return         : None *******************************************************************************/ void assert_failed(u8* file, u32 line) {   /* User can add his own implementation to report the file name and line number,      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */   while(1)   {   } } #endif /******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/
    5. st7烧录 4/3850 stm32/stm8 2010-09-06
                                       STICK
    6. 新手求救,请各位大侠不吝赐教 5/3502 stm32/stm8 2010-08-11
                                       恩,解决了
    7. 引用 5 楼 jnu_kinke 的回复: 安装SDK自动包含了定义这个宏的头文件,直接引用这个宏就行了,不用理会它的值设置。
      其在执行的时候,出现错误: ERROR CODE :87 (参数不对)
    8. TASKING C166 V8.5正版软件分享 40/17125 嵌入式系统 2010-04-14
      您好,我也想要 850006030
    9. 如何在一个task中terminate另一个task? 9/4248 嵌入式系统 2010-04-12
      不建议强制结束别的任务,最好的方法还是通知要结束的任务,让它自己释放资源并退出 强制结束别的任务可能导致被结束的任务申请的资源没有释放的问题
    10. 关于c#代码 调用WINCE摄像头的问题 1/4167 嵌入式系统 2010-04-04
      没弄过。 帮顶下,MARK.
    11. 引用 2 楼 kevinyujm 的回复: 1. GNU工具链中有objcopy这个工具,可以实现你要求的elf->bin的功能。 (objcopy的作用是拷贝一个目标文件的内容到另一个目标文件中,可以适用于很多格式,其中包括binary) 2. 你不想使用ADS1.2,OK,你可以直接使用gcc工具链。我们工作中用的环境是:Windows操作系统 + cygwin + gcc for arm。当然,在linux下开发就省去了cyg……
      还是没搞懂。。。lz试试呐,然后结贴的时候讲讲呐,我一直以为都是需要带系统运行的简单点呢,不然启还得自己写启动文件。。。要不你看看uboot怎么做的,或者其他的bootloader,他们都是用linux下编译,然后下载到无系统上去运行的。。。
    12. 引用 4 楼 veabol 的回复: 这个没用过,以前认为提取不了其中的文件,后来想想应该是可行的,只是要了解NB0文件的生成过程。
      可以提取了,但不能用于其它工程!!!
    13.                                  CLK_PeripheralClockConfig(CLK_PERIPHERAL_LINUART, 1); CLK_PeripheralClockConfig(CLK_PERIPHERAL_USART, 1);
    14. 散分 高手帮帮忙 14/4371 嵌入式系统 2009-12-25
      引用 7 楼 zhoushunda960 的回复: 我只负责软件部分,硬件部分由别人负责。他们只管按照老板意图做,老板说怎么做,就怎么做。一点不为我们着想!
      这样的话,楼主 首先把上述功能一个一个实现, 然后确定彼此的逻辑关系,理清彼此的逻辑,与控制需求,再采用不同的中断优先级进行合适的组合。
    15. ARM9开发板PB下,编译错误 15/4924 ARM技术 2009-12-16
      去看E:\WINCE500\build.log中是否有更多的错误信息
    16. wince写文件的速度 3/4000 嵌入式系统 2009-11-18
      是有点慢,不过100ms就不至于了
    17. 门外汉问一个弱问题! 18/6183 嵌入式系统 2009-11-02
      引用楼主 agamem 的回复: 网上搜到的都是在开发板上定制系统,不知道开发板和成品有什么区别?
      前者主要是产品在开发阶段,软硬件的试验平台。 后者则是产品已经定型,是是开发板的子集,后者的功能前者都能实现,但是前者的功能后者不一定都有。 考虑产品成本,有些开发板具有的功能而成品一般就没有了,有些行业会有定制,如OEM等。
    18. STC单片机系列用来做什么? 12/9798 stm32/stm8 2009-10-17
                                       eeprom是电可擦除可编程只读存储器,可以掉电保存数据。
    19. 求助优龙BIOS,nand_boot_beg段分析! 15/6726 嵌入式系统 2009-09-15
      上一周 弄KEIL ,一直没搞少,现在转到ADS了  ,果然好多了
    20. 我也蓝牙 9/4701 嵌入式系统 2009-09-10
      问问题的水平不行,很少有人回答,呵呵,自己顶一个 看到不少发贴搞蓝牙的,做过的好心人帮忙看看,谢谢各位

最近访客

< 1/1 >

统计信息

已有71人来访过

  • 芯积分:--
  • 好友:--
  • 主题:9
  • 回复:55

留言

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


现在还没有留言