问答

汇集网友智慧,解决技术难题

21ic问答首页 - NUC029最简短程序点亮LED,不调用头文件

LAN LED NUC029 N76E003 AN 6E

NUC029最简短程序点亮LED,不调用头文件

gxhn2025-11-01
下面是N76E003实现亮LED方法
sfr P0=0x80
P0=255;
如何实现NUC029LAN,32位这种程序呢
哪位大神回下
回答 +关注 1
543人浏览 1人回答问题 分享 举报
1 个回答
  • #include <stdint.h> // 引入标准整数类型定义,尽管这里不调用头文件,但为了确保数据类型定义,我们还是需要这个包含

    int main(void) {
        // GPIOA的基地址
        volatile uint32_t* GPIOA_BASE = (uint32_t*)0x40010800;
        // GPIOA的输出数据寄存器地址偏移为0x14,即0x40010814
        volatile uint32_t* GPIOA_ODR = (uint32_t*)(GPIOA_BASE + 0x14);
        // GPIOA的输出类型寄存器地址偏移为0x04,即0x40010804
        volatile uint32_t* GPIOA_OTYPER = (uint32_t*)(GPIOA_BASE + 0x04);
        // GPIOA的时钟控制寄存器地址偏移为0x18,即0x40010818(启用GPIOA时钟)
        volatile uint32_t* RCC_AHBENR = (uint32_t*)0x40021014;
        // GPIOA的模式寄存器地址偏移为0x00,即0x40010800(配置为通用输出模式)
        volatile uint32_t* GPIOA_MODER = (uint32_t*)GPIOA_BASE;

        // 启用GPIOA的时钟
        *RCC_AHBENR |= (1 << 17); // RCC_AHBENR的第17位是GPIOA时钟控制位

        // 配置PA5为通用输出模式(MODER寄存器)
        *GPIOA_MODER = (*GPIOA_MODER & ~(3 << (2 * 5))) | (1 << (2 * 5)); // 将PA5配置为通用输出模式(输出模式是1)
        // 配置PA5为推挽输出(OTYPER寄存器)
        *GPIOA_OTYPER &= ~(1 << 5); // 清零表示推挽输出(复位状态)
        // 设置PA5输出高电平点亮LED
        *GPIOA_ODR |= (1 << 5); // 设置PA5为高电平

        while(1) {
            // 在这里什么都不做,仅仅保持LED点亮状态
        }
    }
    这个是STM32实现,NUC029呢,我试验了设为输出,并设定1,还是没输出

您需要登录后才可以回复 登录 | 注册