广告
淘宝内部优惠券
当前位置: 开发异常方案库» 硬件/嵌入开发 » 新人菜鸟问题main.c(18): error: #44: expression must have pointer type

新人菜鸟问题main.c(18): error: #44: expression must have pointer type

开发异常方案库  收集整理于:2020-05-08 23:54:00  浏览:66次
想学习使用寄存器输出点亮发光管,在main函数最后四句提示要指针,哪里调整 #include "stm32f10x_gpio.h" //#include "stm32f10x.h" int main() { RCC_APB2ENR |=(1<<5); GPIOD_CRL &=~(0x0F<<4*6); GPIOD_CRL |=(1<<24); GPIOD_ODR |=(1<<6); //RCC_APB2ENR |=(1<<4); //GPIOC_CRL &=~(0x0F<<4*6); //GPIOC_CRL |=(1<<4*6); //GPIOC_ODR |=(1<<6); RCC->APB2ENR |=(1<<4); GPIOC->CR &=~(0x0F<<4*6);   GPIOC->CR |=(1<<4*6);   GPIOC->ODR |=(1<<6); } #define RCC_APB2ENR *(unsigned int *)0x40021018  #define GPIOD_CRL *(unsigned int *)0x40011400 #define GPIOD_ODR *(unsigned int *)0x4001140C    //PD6亮灯 //#define GPIOC_CRL *(unsigned int *)0x40011000 //#define GPIOC_ODR *(unsigned int *)0x4001100C typedef unsigned int uint32_t; #define PERIPH_BASE 0x40000000 #define APB2PERIPH_BASE (PERIPH_BASE+0x10000) #define AHBPERIPH_BASE (PERIPH_BASE+0x20000)   //总线地址变量定义 #define GPIOC_BASE  APB2PERIPH_BASE+0x1000 #define GPIOC_CRL  *(unsigned int *)(GPIOC_BASE+0x00) #define GPIOC_ODR *(unsigned int *)(GPIOC_BASE+0x0C)   //端口C地址变量定义 typedef struct  {   uint32_t CRL; uint32_t CRH; uint32_t ODR; }GPIO_TypeDef; #define RCC_BASE (AHBPERIPH_BASE+0x1000) #define RCC_AHBENR  *(unsigned int *)(RCC_BASE+0x18) typedef struct {   uint32_t CR; uint32_t APB2ENR; }RCC_TypeDef; #define RCC ((GPIO_TypeDef*)RCC_BASE) #define GPIOC (GPIO_TypeDef*)GPIOC_BASE

------网友观点--------------------
哪位路过的兄台给看下呗

------网友观点--------------------
没看出什么问题,是不是include的文件不对

------网友观点--------------------
int main(void) keil的arm编程就是这个德行

------网友观点--------------------
目前情况,在没用结构体前,编译可以正常输出亮灯。 把最后四句改动成下面的样子,编译就不报错,但执行了没结果 (*RCC).APB2ENR |=(1<<4); (*GPIOC).CRL &=~(0x0F<<4*6);   (*GPIOC).CRL |=(1<<4*6);   (*GPIOC).ODR |=(1<<6);

------网友观点--------------------
自己找到了问题的地方,#define GPIOC (GPIO_TypeDef*)GPIOC_BASE没有小括号,加上就不会有要求指针错误,没有输出因为结构体成员没有按照手册按顺序添加,使结构体的地址不够,调用时地址对应错误,按照顺序添加上后,编译输出正常。
发布此文章仅为传递网友分享,不代表本站观点,若侵权请联系我们删除,本站将不对此承担任何责任。
软件开发 程序错误 异常 ybaby.netCopyright © 2020-2026  ybaby 版权所有  桂ICP备17004385号-2 网站地图