
嵌入式复习
文章平均质量分 89
CodeForCoffee
https://github.com/nikolajohn
展开
-
ADC的数据读取问题
计算机是如何表示负数的呢?这要从补码说起。在数学中,任意基数的负数都在最前面加上"−"符号(负号)来表示。然而,在计算机硬件中,数字都以无符号的二进制形式表示,因此我们需要一种编码负号,表示负数的方法。补码是。对于正数而言,正数的补码就是该数字本身。对于0而言,0的补码同样也是该数字本身。对于负数而言,负数的补码则是将其对应正数按位取反再加1。举个例子,十进制数6,其二进制为0000 0110,则其补码为(1111 1001)+1,即1111 1010,这个1111 1010就是-6的补码。原创 2022-11-29 21:09:57 · 3726 阅读 · 0 评论 -
STM32Cube下载与使用(三)
意法半导体ST与ARM的关系ST公司购买ARM公司的内核,在此基础上添加各种外设,组成STM32芯片也就是说,在内核之上,所有的外设都是ST公司添加上去的ST内核通过总线矩阵与外设连接嵌入式C语言中对于地址的操作此时指针pointer是指向寄存器的地址0x4002800按照这样我们可以完成对地址的访问这些基于指针的地址操作是非常常见的,基于寄存器的编程就是通过指针完成的进一步地,考虑到定义变量会消耗内存,如果我们大量地定义地址变量,将会消耗大量的内存空间因此可原创 2022-03-06 12:35:55 · 1138 阅读 · 0 评论 -
STM32Cube下载与使用(二)
目录STM32 HAL库所在的层次STM32CUBEMAX固件包Keil配置时的注意点STM32CUBEMAX选择固件包存放的位置STM32CUBEMAX下载指定的固件包STM32CUBEMAX生成代码时的库选择(HAL或LL)STM32CUBEMAX生成代码时的配置选择参考STM32CUBEMAX生成函数的位置调节STM32 HAL库的使用方法STM32 HAL库所在的层次STM32的HAL库所处的位置标准库与HAL库所处的位置对于STM32原创 2022-03-06 21:54:14 · 2060 阅读 · 0 评论 -
STMCube UART与ADC配置
DMA的中断服务函数可以通过以下方式寻找可以看到,其调用了HAL_DMA_IRQHandler函数这里的XferCpltCallback是一个函数指针,我们看一下他的定义这个函数指针成员到底指向了什么,你直接去追是追不到的,在DMA启动之后会为这个成员赋值。实际上,这个赋值的操作是在HAL_ADC_Start_DMA函数中完成的这个ADC_DMAConvCplt就是ADC DMA的回调函数这个ADC_DMAConvCpl...原创 2022-03-26 20:57:43 · 1453 阅读 · 1 评论 -
HAL库中的函数指针
函数指针:即指向函数的指针变量因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数正如用指针变量可指向整型变量、字符型、数组一样,这里的指针变量是指向函数C语言在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的函数指针有两个用途:调用函数和做函数的参数我们首先定义了一个函数指针pfun ,这个函数指针的返回值为voidvoid (*p原创 2022-03-26 21:29:26 · 1302 阅读 · 1 评论