汇集网友智慧,解决技术难题
LAN LED NUC029 N76E003 AN 6E
赞0
评论
2025-11-01
点击图片添加到编辑器内容中
点击文件名将附件添加到文章中
提交
tyw
319个答案
天意无罪
287个答案
xch
240个答案
jjjyufan
209个答案
coody
203个答案
LcwSwust
172个答案
chunyang
135个答案
地瓜patch
128个答案
赞0
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,还是没输出
评论
2025-11-01
您需要登录后才可以回复 登录 | 注册