• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

C语言通过变量或指针来改变寄存器?数字

zzgege 2021-05-10 浏览量:555
编写一段数码管程序。需要对五个io口。
依次置0和一的转换。由于是寄存器操作。
想用循环的方法。  
所以就出现了问题。  寄存器怎么能变成变量?
通过改变变量改变寄存器的值。
用指针数组指向寄存器还是用变量数组哦。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 寄存器是有地址的,地址是可以通过指针来操作的。

    你不同的芯片,对应的寄存器的表示方式是不一样的,如stm32的,用一个寄存器地址

    ((GPIO_TypeDef *) GPIOA_base),这里用了一个GPIO寄存器的结构体,而地址GPIOA_base就是

    #define GPIOA_base            (AHB2PERIPH_base + 0x0000UL)

    其中的AHB2PERIPH_base又是

    AHB2PERIPH_base       (PERIPH_base + 0x08000000UL)

    PERIPH_base又是

    #define PERIPH_base           (0x40000000UL)

    所以,根据手册,就可以计算出最后的寄存器是表示的什么功能了

    • 发布于 2021-05-19
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1
  • 这个和具体器件(芯片)的相关操作相关,需要明确的来讨论。 理论上是可以完成的
    • 发布于2021-05-10
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

C语言通过变量或指针来改变寄存器?数字