今日热门

4

回答

不同设备发给stm32的波特率和检验位是不一样的,有没有可以自动识别波特率的程序

yhj416606438 2021-04-04 阅读:525

4

回答

请问hc32l110可以用stlink下载程序吗

yhj416606438 2021-04-03 阅读:1460

3

回答

他的原理是什么,系统如何自动调节pid三个参数

yhj416606438 2021-04-02 阅读:368

4

回答

adc采集铂电阻温度,请问用这两种方法滤波各有什么优缺点

yhj416606438 2021-04-01 阅读:2303

3

回答

请问stm32f030c8t6的备份存储容量是多大的

yhj416606438 2021-04-01 阅读:759

2

回答

有没有办法读取带保护的程序

yhj416606438 2021-04-01 阅读:1263

2

回答

        移植原子407工程到107上,没有外部RAM情况下只用内部RAM,使用了内存管理的方式。ucosii上内存管理了50K(总共64K)时,程序是可以正常工作的,这个时候编译ZI-DATA已经要到64K了。我继续换成UCOSIII就编译不通过了,提示内存不足,内存池改成40k编译没错误,但是内存分配不成功网卡驱动不了。。       求教!!! 根据原子的例程,网卡初始化申请了四个缓存,lwip初始化又申请了四个缓存,一共这八个地方使用了内存管理。。这几个地方是不是很耗内存,管理小了就分配失败管理大了又编译不了。不是很了解这样管理内存的好处是什么,为什么会编译不了,是不是初始化申请太多又没有释放导致内存溢出?看到网上别人没有这种内存管理整个编译下来ZI-DATA才40几K,感觉应该是可以装得下的啊。是不是我哪里弄错,请教大家。 如果管理40K这里会分配失败。 企业微信截图_16170864191505.png (4.74 KB 下载次数: 0) 下载附件 这里使用了内存管理昨天 14:41 上传

大头 2021-03-31 阅读:819

3

回答

用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); //清楚中断标志位 } 感觉没有按照我的中断来输出波形,这是为什么呀,要实现我时序那样的波形应该写代码呀

liubo 2021-03-31 阅读:901

1

回答

最近几天想详细研究一下STM32的启动,STM32分散加载文件和启动文件的语法介绍在哪可以找到呢?

耳根的耳根 2021-03-31 阅读:508

4

回答

用stm32实现2路pwm,频率一样,占空比和相位怎么调节

yhj416606438 2021-03-31 阅读:818

2

回答

目前用状态机+定时器中断(按键检测函数放在中断服务函数里每10ms扫描一次)实现按键长短按,长按灯亮,短按可以循环调光,再次长按灯灭。如果要结合低功耗模式(如:待机)应该怎么实现呢?希望长按开机点亮灯,开机后短按循环调光,开机状态长按关机?被卡了很久,请各位大佬指点一下,谢谢

xbk_361719 2021-03-30 阅读:792

4

回答

不要求速度,请问需要软件怎么实现

yhj416606438 2021-03-29 阅读:1487

1

回答

MDK的启动文件和分散加载文件同时运行的话,两者使用哪个?两者是否冲突呢?RAM和ROM的分配以哪个为准呢?

耳根的耳根 2021-03-28 阅读:368

1

回答

手头一个项目,启动文件被修改过了,想要一个原始的未修改的启动文件,应该在哪下载呢?官网没找到,还有用的是以前3.5的标准库。

耳根的耳根 2021-03-28 阅读:1725

4

回答

中断线 0-4 每个中断线对应一个中断函数,中断线 5-9 共用中断函数 ,EXTI9_5_IRQHandler,中断线 10-15 共用中断函数 EXTI15_10_IRQHandler。比如进去EXTI9_5_IRQHandler的时候还需要判断中断线,这样的话,如果同时触发中断的话5-9同时触发中断的话怎么办呢?

耳根的耳根 2021-03-28 阅读:2330

3

回答

比如cd4052,他可以控制的电阻和他之间的电源压差可以多少

yhj416606438 2021-03-27 阅读:287

2

回答

分散加载文件中的内存是如何和实际对应起来的呢?比如下面的代码:LR_IROM1 0x08000000 0x00010000 { ; load region size_region ER_IROM1 0x08000000 0x00010000 { ; load address = execution address *.o (RESET +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00002800 { ; RW data .ANY (+RW +ZI) } HEAP +0 { *.o (HEAP) } STACKS 0x20002800 -0x00000200 { *.o (STACK) } } 我的FLAH是128kb,应该是0x00020000RAM是20kb,应该是0x00005000为什么和实际对应不上呢?

耳根的耳根 2021-03-26 阅读:537

1

回答

MDK编译报错如下显示:..\boot\lc.scat(21): warning: L6329W: Pattern *.o(HEAP) only matches removed unused sections.这个应该如何去掉呢?

耳根的耳根 2021-03-26 阅读:1362

3

回答

不用直接单片机pwm控制l298,请问细分算法如何实现

yhj416606438 2021-03-26 阅读:370

3

回答

当STM32加ucos的时候,启动文件中的堆栈还起作用吗,因为启动文件中的堆栈肯定是不够的。那么这个堆栈在哪里分配呢?

耳根的耳根 2021-03-25 阅读:721
  • 帮助人数
  • 0
  • 获得赞数
  • 0
  • 一周积分
  • 0

问题达人换一批

本月问答

排名
用户名
问答积分
< >