STM32
hexiechina2010
这个作者很懒,什么都没留下…
展开
-
针对stm32 DMA传输AD数据,在完成中断后如何复位的问题的思考
案发条件ADC连续单通道模式AD采集,触发DMA获取数据。程序如下void ADC_DMAInit(void){ ADC_InitTypeDef ADC_InitStructure;RCC_HSICmd(ENABLE); // Enable HSI Clock ADC_IO_Init();while(RCC_GetFlagStatus(RCC_FL原创 2014-12-04 18:52:19 · 9399 阅读 · 0 评论 -
STM32定时器
STM32的定时器功能很强大,学习起来也很费劲儿.其实手册讲的还是挺全面的,只是无奈TIMER的功能太复杂,所以显得手册很难懂,我就是通过这样看手册:while(!SUCCESS){看手册…}才搞明白的!所以接下来我以手册的顺序为主线,增加一些自己的理解,并通过11个例程对TIMER做个剖析。实验环境是STM103V100的实验板,MDK3.2 +Library2.东西都不怎么新,凑合用…转载 2016-06-16 16:44:05 · 1319 阅读 · 0 评论 -
MDK __main过程分析
今天分析了一下__main的流程,和大家分享一下在进入__main之间打下断点, 当前命令“LDR r0 , [pc, #24]“ 将PC+24=0x080001E0地址处的数据加载到 r0 中,因为CM4 内部使用了指令流水线,读PC 时返回的值是当前指令的地址+4。所以当前命令后,R0等于0x080001E0地址处的数据,如下图所示:R0=原创 2015-08-11 14:41:07 · 4169 阅读 · 1 评论 -
MDK jlink仿真时出现can not RESET_ST
前几天遇到这样一个问题,新焊的电路板,MDK仿真时出现can not RESET_ST,引起的奇怪问题是,上电之后,仿真总是进中断。后来查出来是硬件问题。外部看门狗的复位输出角直接连接到stm32的复位引脚。MDK仿真时复位芯片走的是软件复位,而当外部看门狗的复位输出角直接连接到stm32的复位引脚时,软件复位拉低不了芯片复位引脚内部的电压,此时芯片也能复位到main函数,估计是仿真时,M原创 2015-04-27 14:49:09 · 1730 阅读 · 0 评论 -
STM32 USART 普通串口应用,调试总结
配置STM32L151CBT6,在普通串口模式。当初没有好好看数据手册,只是看着别人的例子写出来一个程序,虽然效果出来了,但不明白其中一些问题的道理,带着这些问题,问了同事,得到的答案,确实最低级的错误。这说明看数据手册的重要性。看程序和问题如下程序刚初始化时,//设置为发送使能,接收使能USART_InitStructure.USART_Mode = USART_Mode_Rx |原创 2014-12-10 11:01:36 · 1043 阅读 · 0 评论 -
STM32 ADC中断后,AD继续在采集
AD模拟看门狗中断处理程序如下void ADC1_IRQHandler(void){g_u32IRQ_Cout = DMA_GetCurrDataCounter(DMA1_Channel1); if(ADC_GetITStatus(ADC1, ADC_IT_OVR) != RESET) { //while(1);ADC_ClearITPendingBit(AD原创 2014-12-08 15:42:46 · 6239 阅读 · 0 评论 -
STM32L151 的ADC的模拟看门狗中断和溢出中断
现场条件:1.AD采集,DMA传输;AD设置为单通道的持续模式,DMA设置为单次模式。AD模拟看门狗设置的上门槛小于AD采集值,下门槛大于AD采样值,当DMA单次结束后,即会发生AD看门狗中断和溢出中断void ADC1_IRQHandler(void){ if(ADC_GetITStatus(ADC1, ADC_IT_OVR) != RESET) { //whi原创 2014-12-08 15:36:46 · 6818 阅读 · 0 评论 -
AD与DMA联合运行试验
AD采集数据,然后请求DMA把数据传输到内存中。AD工作在循环模式,开启了溢出标志。DMA工作在单次模式,触发完成中断。中断处理程序如下void DMA1_Channel1_IRQHandler(void){ DMA_InitTypeDef DMA_InitStructure;g_u32IRQ_Cout++; if(DMA_GetITStatus(DMA1_I原创 2014-12-08 11:19:15 · 2447 阅读 · 0 评论 -
初级问题犯错总结---中断与中断源
”我原来一直以为,定时器发生中断了,则定时器就会停止运行,直到中断结束。“这种认识是错误的,要分清楚中断源和中断是两个器件,很多中断源对CPU来说是外围器件,当如果外围器件的中断源设置为单次 运行模式,且开启了中断,然后在中断中重新开启中断源,这种情况时,中断源在进入中断前已经停止了。如果中断源设置为循环模式时,且开启了中断,触发中断后,设备进入中断程序同时,定时器或AD还会正常工作,不收中断原创 2014-12-08 10:28:53 · 652 阅读 · 0 评论 -
飞控信号SBUS信号解析为PWM信号输出
飞控信号SBUS信号解析为PWM信号输出 1.修改STM32时钟频率: static void SetSysClockTo72(void) { __IO uint32_t StartUpCounter = 0, HSEStatus = 0;/!/ /!/ RCC->CR |= ((uint32_t)RCC_CR_HSEON);/!/ do { H转载 2016-06-16 17:00:34 · 20312 阅读 · 4 评论