头像-8914

liubo

  • 北京市北京市
  • 嵌入式
  • 物联网

个人成就

获得 1 次赞

帮助过1028人

XPT2046怎么在proteus中进行仿真

Proteus中没有找到xpt2046的器件,有没有什么办法加载它的元件包呢?

用STM32的定时器TIM1产生四路两两互补的PWM波,用TIM2的中断来改变TIM1的输出波形的比较值

用STM32的定时器TIM1产生四路两两互补的PWM波,用TIM2的中断来改变TIM1的输出波形的比较值,时序图如下,示波器的波形图为:用TIM1的CH1CH2CH1NCH2N来产生A、B、C、D代码为 void TIM1_PWM_Init(u16 arru16 psc) {         RCC->APB2ENR|=1<<11;       //使能TIM1的时钟 //        RCC->APB2ENR|=0<<1;        //使能复用时钟         RCC->APB2ENR|=1<<2;        //使能GPIOA的时钟CH1-PA9 CH2-PA10 CH1N-PB13 CH2N-PB14         RCC->APB2ENR|=1<<3;        //使能GPIOB的时钟                 GPIOA->CRH&=0XFFFFFF00;     //PA9为复用推挽输出,最大速度50MHZ ,必须为复用推挽输出!!!         GPIOA->CRH|=0X000000BB;                 GPIOB->CRH&=0XF00FFFFF;     //PA9为复用推挽输出,最大速度50MHZ ,必须为复用推挽输出!!!         GPIOB->CRH|=0X0BB00000;                 TIM1->CCR1=6199;         TIM1->CCR2=7199;         TIM1->ARR=arr;                        //设定计数器自动重装值         TIM1->PSC=psc;                        //预分频器不分频         //        TIM1->BDTR|=0xCD;     // 死区时间设定                 TIM1->CCER|=1<<0;//TIM1CH1通道开关使能         TIM1->CCER|=1<<2;//TIM1CH1N 通道开关                 TIM1->CCER|=1<<4;         TIM1->CCER|=1<<6;                 TIM1->CCMR1|=7<<4;          //CH1 PWM2模式         TIM1->CCMR1|=1<<3;          //CH1预装载使能                 TIM1->CCMR1|=7<<12;          //CH2 PWM2模式                          TIM1->CCMR1|=1<<11;         //CH1预装载使能                 TIM1->CR1|=0X80;// CR1 ARPE自动重装载预装载允许位使能                 //        TIM1->BDTR=0;         TIM1->BDTR=0x80;         TIM1->BDTR|=1<<15;  //刹车使能位置1,开启所有输出通道 //        TIM1->CR1|=0X01;   //使能定时计数器1                 } void  TIM2_Init(u16 arru16 psc ) {         RCC->APB1ENR|=1<<0;           //使能TIM2的时钟                 TIM2->CR1&=0XFFEE;           //计数器向上计数         TIM2->CR1|=0X0001;                 TIM2->ARR=arr;         TIM2->PSC=psc;         TIM2->DIER|=1<<0;           //允许更新中断         MY_NVIC_Init(20TIM2_IRQn2); //抢占优先级2,子优先级2,组2         } void TIM2_IRQHandler(void) {         static u8 cnt=0;                 if(TIM2->SR&0X0001)        //产生溢出中断         {                 if (cnt==0)                 {                         TIM2->ARR=7200;    //定时器中断时间设置为100us                 TIM2->PSC=0;                                                 TIM1->CCR1|=1<<0;                         TIM1->CCR1=6199;   //6199                         TIM1->CCR2=7199;                                             cnt=1;                 }                 if(cnt==1)                 {                         TIM2->ARR=7200;    //定时器中断时间设置为800us                 TIM2->PSC=7;                                                 TIM1->ARR=7200;    //定时器中断时间设置为800us                 TIM1->PSC=7;                                                 TIM1->CR1&=~(1<<0);                         TIM1->CCR1=7199;                         TIM1->CCR2=7199;                         cnt=2;                                         LED1=!LED1;                 }                 if (cnt==2)                 {                         TIM2->ARR=7200;    //定时器中断时间设置为100us                 TIM2->PSC=0;                                            TIM1->ARR=7200;    //定时器中断时间设置为100us                 TIM1->PSC=0;                                         TIM1->CR1|=1<<0;                         TIM1->CCR1=7199;                         TIM1->CCR2=4500;                                                 cnt=0;                                                 }                 }         TIM2->SR&=~(1<<0); //清楚中断标志位 } 感觉没有按照我的中断来输出波形,这是为什么呀,要实现我时序那样的波形应该写代码呀

关于MT9V034 10位像素信息输出疑问

mt9v034的并行数据输出有10位,DOUT2~DOUT9输出8位的像素灰度值,那么DOUT0和DOUT1这另个引脚输出什么信息呢?在官方手册没找到。

STM8用keil哪款软件编译C

BAIDU_CLB_fillSlot%28%22200786%22%29%3B STM8用keil哪款软件编译C

stm32f407VGT6开发多功能电能表怎么操作 求帮助

请问各位大神stm32f407VGT6开发多功能电能表中,采集的电能怎么得来的,过程是怎么样的呢?

fpga实现位宽数据的截取,采用哪种更节省资源?

使用fpga实现串口8比特的数据转换为6比特并行数据的方法,采用哪种更节省资源

高压输入的辅助电源什么拓扑最好?

通常辅助电源使用的都是反激电源,但是反激电源开关管电压应力明显高于输入电压。当电源输入电压比较高时辅助电源的开关管选择就比较困难了。有什么比较好的解决方案吗?

STM32单片机如何实现电池电量的实时显示

如何用单片机STM32做一个电池电量的实时显示,类似于手机上面那个电量显示条一样。各位有什么好的设计方案吗?