stm32
文章平均质量分 66
SlowSailKnowNothing
一只章鱼。
展开
-
对于stm32中dma的理解
一.dma常识. 1.作用:实现片内数据之间的高速传输。即是能够不占用cpu实现数据传输。 2.模式:外设到存储器传输、存储器到外设传输和存储器到存储器传输三种传输模式。 3.stm32中的dma支持外设通道选择,并且可以用仲裁器配置adc对数据流的处理顺序。 4.dma带有一个被称为fifo的东西,主要配置fifo来实现对传输双方要求字长不匹配的调整。即所谓 FIFO 对于要求源地址和原创 2017-02-27 18:51:33 · 15903 阅读 · 4 评论 -
2018年6月22日编程记录
今天从下午开始编程。处理的程序是SD卡读取的协议。对于SD卡,stm32提供了官方的固件库。使用官方的API是最为高效地方式。但是在本次移植中,首先出现了DMA运输过程中总是停止不曾运输的问题,这就引出了stm32移植程序的一个重要的注意点:移植程序的时候一定要注意除了初始化函数以及移植程序外,中断函数也要相应地检查,因为很多过程实际上是在中断中处理的。而后面,在移植的过程中,不知道为什么,虽然调...原创 2018-06-22 23:04:08 · 222 阅读 · 0 评论 -
2018年6月5日编程笔记
前言:以后编程的话还是要写记录,对于我这种电子系出身的,编程能力还是有很大的问题,本科编程的机会也基本没有了,这回开始开始按照日期做一个编程记录,给自己提醒,也希望如果有人跟我一样犯一些错误的话也能够有所收获。话不多说,开始进入正题。许久没有编写32程序,今天又开始了对32的编程。其实就是发现之前的超声波程序不好使,然后调试。首先利用硬件debug调试,发现卡死在delay函数中,后来发现编译通过...原创 2018-06-05 22:30:38 · 302 阅读 · 0 评论 -
关于液晶驱动原理的一些理解
1.液晶本质是通过控制透光程度来成像的。 2.而透光程度又是和交流电压的有效值有关。又电压的频率又要考虑功耗。所以总之是利用交流电压实现图像显示。 3.用户一方面直接控制LCD相关的控制器,一方面读写相应的GRAM.这就是用户主要做的事情。 4.用户通过控制GRAM内相关的位,就可以实现图像的控制。即对特定某位置位。原创 2018-05-28 14:34:39 · 3873 阅读 · 0 评论 -
对32中TIM的滤波器数字滤波器的理解
1.TIM_TIxExternalClockConfig这个函数是配置外部输入模式。这里的三个参数分别为TIMX,TIM_TIxExternalCLKSource,和ICFilter,这里的ICFilter的作用是配置数字滤波器的功能。它的计算公式在:0001:采样频率fSAMPLING=fCK_INT,N=2就是根据输入的时钟决定的。但是也会出原创 2018-05-28 14:33:41 · 3101 阅读 · 0 评论 -
关于stm32的串口
1.起始位检测机制,对于下降沿的采样规定了采样所得的信号序列。如果符合序列代表受到了起始位,然后就会把RXNE置位。2.当RXNE被置位的时候,表明数据已经转移到了RDR,就是说已经可以被读出了。然后另外一个值得注意的是,只要及时的读数据,那么RXNE就会被复位。3.分为多缓冲器通信和单缓冲器通信。单缓冲是由软件对相应的标志位清除,但是要保证必须在下一字符接收结束之前被清零,不然会原创 2017-07-30 14:26:31 · 576 阅读 · 0 评论 -
电赛备战1:时频测量
1.对于方波,可以用定时器的输入捕获或者pwm模式来实现。使用pwm模式的时候一个定时器就最多只能使用两个输入通道,因为一个输入通道占用了两个捕获通道。但是有大神指出,这样做的硬件误差实在太大。一个比较可行的方法是内部使用一个定时器来计时,而再使用一个外部定时器作计数器。这样就可以知道特定时间内信号的高电平次数进而可以算出频率。 2.但是也有几种不错的方案可以试一试。其一是使用st的输入捕获功能,原创 2017-03-12 18:20:03 · 488 阅读 · 0 评论 -
自己移植程序的时候遇到的一些问题
今天是想将按键中断程序移植到adc显示的实验中,结果发现总是出现adc读数不准的情况。具体原因我现在还没有弄明白,怀疑是否是硬件问题。我在配置的时候发现,有时候程序本身逻辑有错误的时候,语法不会报错,然而会出现一些bug。移植有这些东西注意。移植中断的时候,一定要看相关的管脚和中断源的配置,一定要记得移植过来。在中断文件夹和主文件夹记得要添加头文件。原创 2017-03-06 21:01:46 · 639 阅读 · 0 评论 -
stm32中的adc多次采样求均值减少误差的方法
就是我用的是f429挑战者的板子。用adc接地的时候发现有零点误差,于是就移植了网上一个f103的例程,通过多次测量求均值的方法来实现adc的精准测量。原创 2017-02-28 20:21:56 · 15009 阅读 · 0 评论 -
关于32中的adc的理解
1.adc作用是将模拟转化为电信号。 2.采样率要求是信号频率的两倍。 3.通道有十六个。 4.电压范围在0到3.3v,是由内部电路决定的。 5.32中的采样周期是由若干个 ADC_CLK 周期提供的。其中采样周期最小是 3 个。 6.ADC 的总转换时间跟 ADC 的输入时钟和采样周期有关。Tconv = 采样时间 + 12 个周期。 7.采样结果存放在两个相应的寄存器里。 8.ad原创 2017-02-26 14:07:56 · 1741 阅读 · 0 评论 -
首次移植程序总结
在移植adc测量电压试验到显示试验的过程中反了一些错误,并且也发现一些值得注意的东西。 1.移植先要移植相关的文件夹,然后是要注意注意包含头文件。 2.今天发现了一种不规范的函数调用方式但是自己不要这样做。 3.移植的相关函数要记得理解含义,否则可能导致移植错误。 4.变量要在可执行语句前声明。 5.最后发现实验没有现象,这时候打开仿真运行发现卡死。对于429好像在c中看不出来卡死在哪里,原创 2017-02-24 14:09:45 · 765 阅读 · 0 评论 -
stm32f103的APB1和APB2
据参考手册有:APB1操作速度限于36MHz,APB2操作于全速(最高72MHz)。APB2负责AD,I/O,高级TIM,串口1。APB1负责DA,USB,SPI,I2C,CAN,串口2345,普通TIM转载 2017-02-23 17:26:16 · 10434 阅读 · 0 评论 -
stm32的寄存器的概念
stm32中的映射首先我们来看一下stm32的总体结构,如下图:我们可以看到,这里总线连接着内核和外设,flash,sram。RAM为这些部分划分了8个块,每块512MB。储存器映射的概念是,为这些储存器分配相应的地址。而储存器的重映射指的就是,再为储存器分配一个地址。 那么我们常说的寄存器是什么呢?寄存器实际就是给已经分配好地址的储存器取的一个容易记得名字,方便我们操作。原创 2017-01-28 15:40:52 · 1387 阅读 · 0 评论 -
2018电赛A题记录
今年的电赛有很多的遗憾,因为很多原因,没有自己参加比赛,但是在比赛的最后,和几位参赛的伙伴们一起思考了下电赛的A题。我主要是思考程序部分,其实从第四问可以看到,这道题的意图十分明显,就是让我们对整个电路做一个频谱分析,也就是电赛这么多年,省赛的难度又绕回去了,要求做了一个低频的频谱分析仪,不过说实话,精度确实是一个难点,最后我们在实现幅度显示的时候用了分段函数校准还是会有比较大的偏差,所以现在...原创 2018-07-24 06:28:32 · 9010 阅读 · 6 评论