STM32编译出错 30
#include"stm32f10x_lib.h"#definePA1GPIOA->BSRR//位置位#definePA0GPIOA->BRR//位清楚#defineGP...
#include"stm32f10x_lib.h"
#define PA1 GPIOA->BSRR //位置位
#define PA0 GPIOA->BRR //位清楚
#define GPIO_ODR_A (GPIOA_BASE=0x0c)
#define GPIO_IDR_A (GPIOA_BASE=0x08)
#define BitBand(Addr,BitNum) *((volatile unsigned long *)((Addr&0xf0000000)+0x2000000+((Addr&0xfffff)<<5)+(BitNum<<2)))
#define PAout(n) BitBand(GPIO_ODR_A,n)
#define PAin(n) BitBand(GPIO_IDR_A,n)
int main(void)
{
GPIOA->CRL = 0X33333333;
GPIOA->CRH = 0X44444444;
while(1)
{
if((GPIOA->IDR & 0x0100)==0x0100) PA1 = 0X01;
else PA0 = 0X01;
if((GPIOA->IDR & 0x0200)==0x0200) PA1 = 0X02;
else PA0 = 0X02;
if((GPIOA->IDR & 0x0400)==0x0400) GPIOA->BSRR= 0X04;
else GPIOA->BRR = 0X04;
if(PAin(11)==1) PAout(3)=1;
else PAout(3)=0;
if(PAin(12)==1) PAout(4)=1;
else PAout(4)=0;
if((GPIOA->IDR & 0x2000)==0x2000) GPIOA->BSRR= 0X20;
else GPIOA->BRR = 0X20;
if((GPIOA->IDR & 0x4000)==0x4000) GPIOA->BSRR= 0X40;
else GPIOA->BRR = 0X40;
if((GPIOA->IDR & 0x8000)==0x8000) GPIOA->BSRR= 0X80;
else GPIOA->BRR = 0X80;
}
}
编译后出现这个错误
Build target 'Target 1'
compiling main.c...
User\main.c(26): error: #137: expression must be a modifiable lvalue
User\main.c: if(PAin(11)==1) PAout(3)=1;
User\main.c: ^
User\main.c(26): error: #137: expression must be a modifiable lvalue
User\main.c: if(PAin(11)==1) PAout(3)=1;
^
User\main.c: User\main.c: 0 warnings, 12 errors
Target not created
#define GPIO_ODR_A (GPIOA_BASE=0x0c)
#define GPIO_IDR_A (GPIOA_BASE=0x08)
不应该是等号 自己找到的问题 展开
#define PA1 GPIOA->BSRR //位置位
#define PA0 GPIOA->BRR //位清楚
#define GPIO_ODR_A (GPIOA_BASE=0x0c)
#define GPIO_IDR_A (GPIOA_BASE=0x08)
#define BitBand(Addr,BitNum) *((volatile unsigned long *)((Addr&0xf0000000)+0x2000000+((Addr&0xfffff)<<5)+(BitNum<<2)))
#define PAout(n) BitBand(GPIO_ODR_A,n)
#define PAin(n) BitBand(GPIO_IDR_A,n)
int main(void)
{
GPIOA->CRL = 0X33333333;
GPIOA->CRH = 0X44444444;
while(1)
{
if((GPIOA->IDR & 0x0100)==0x0100) PA1 = 0X01;
else PA0 = 0X01;
if((GPIOA->IDR & 0x0200)==0x0200) PA1 = 0X02;
else PA0 = 0X02;
if((GPIOA->IDR & 0x0400)==0x0400) GPIOA->BSRR= 0X04;
else GPIOA->BRR = 0X04;
if(PAin(11)==1) PAout(3)=1;
else PAout(3)=0;
if(PAin(12)==1) PAout(4)=1;
else PAout(4)=0;
if((GPIOA->IDR & 0x2000)==0x2000) GPIOA->BSRR= 0X20;
else GPIOA->BRR = 0X20;
if((GPIOA->IDR & 0x4000)==0x4000) GPIOA->BSRR= 0X40;
else GPIOA->BRR = 0X40;
if((GPIOA->IDR & 0x8000)==0x8000) GPIOA->BSRR= 0X80;
else GPIOA->BRR = 0X80;
}
}
编译后出现这个错误
Build target 'Target 1'
compiling main.c...
User\main.c(26): error: #137: expression must be a modifiable lvalue
User\main.c: if(PAin(11)==1) PAout(3)=1;
User\main.c: ^
User\main.c(26): error: #137: expression must be a modifiable lvalue
User\main.c: if(PAin(11)==1) PAout(3)=1;
^
User\main.c: User\main.c: 0 warnings, 12 errors
Target not created
#define GPIO_ODR_A (GPIOA_BASE=0x0c)
#define GPIO_IDR_A (GPIOA_BASE=0x08)
不应该是等号 自己找到的问题 展开
4个回答
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
展开全部
在 pwm_output.c这个文件中 TIM3_Mode_Config 这个函数没有定义 一般情况下关于TIM的的操作都在 stm32f10x_tim.c stm32f10x_tim.h下面 你加入这个头文件 到你的.c文件中 或者是将.c文件加入工程文件
追问
TIM是定时器吧。
加了H文件不行。
我写的是位绑定程序和pwm有什么关系 再说我的工程里面都有你说的.c.h文件。
我根本就没用到定时器。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也遇到了这个问题 请问是怎么解决的 急谢谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主的问题解决了吗?我也遇到相同的问题,求教!
追问
解决了
现在忘了如果你没解决 可以联系我,我上电脑看看原来的代码回忆一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |