gpt4 book ai didi

c - 具有相同地址的两个不同寄存器

转载 作者:太空宇宙 更新时间:2023-11-04 03:29:18 24 4
gpt4 key购买 nike

我正在编写代码来对 UART 芯片进行编程。发送和接收寄存器的地址偏移量均为 0x00。那么如何访问两个寄存器呢?

最佳答案

这两个寄存器不是每个都可以从代码中读取和写入的。 UART 发送寄存器是只写的。 UART 接收寄存器是只读的。 @Weather Vane .

硬件使用读/写控制作为位,如地址位,区分寄存器访问。

这意味着代码无法直接读取写入的内容。代码也不能直接写入接收寄存器。


在极少数情况下,如果代码需要读取 UART 发送寄存器的内容,则可以使用影子存储器中的副本。

static unsigned char UART_write_shadow;

void UART_transmit_write(unsigned char x) {
*UART_transmit_register_address = x;
UART_write_shadow = x;
}

unsigned char UART_transmit_read(void) {
return UART_write_shadow;
}

关于c - 具有相同地址的两个不同寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38345144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com