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)
不应该是等号 自己找到的问题
展开
 我来答
xiaomage_2000
推荐于2017-11-26 · TA获得超过3621个赞
知道大有可为答主
回答量:1772
采纳率:100%
帮助的人:836万
展开全部
error: #137: expression must be a modifiable lvalue
描述:表达式必须是一个可以修改的左值
主要出现在这种现象
:a=NUM;
NUM是一个数值或表达式
,a为一个变量
但a被定义为像const这种不可更改的类型导致NUM不能赋值给变量
解决方法要么放弃赋值要么修改变量属性
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
大靥3mO
2014-07-29 · TA获得超过248个赞
知道答主
回答量:108
采纳率:0%
帮助的人:121万
展开全部
在 pwm_output.c这个文件中 TIM3_Mode_Config 这个函数没有定义 一般情况下关于TIM的的操作都在 stm32f10x_tim.c stm32f10x_tim.h下面 你加入这个头文件 到你的.c文件中 或者是将.c文件加入工程文件
追问
TIM是定时器吧。
加了H文件不行。
我写的是位绑定程序和pwm有什么关系 再说我的工程里面都有你说的.c.h文件。
我根本就没用到定时器。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ETDracorex
2019-07-20
知道答主
回答量:1
采纳率:0%
帮助的人:709
展开全部
我也遇到了这个问题 请问是怎么解决的 急谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
楚门Linux
2014-08-27
知道答主
回答量:6
采纳率:0%
帮助的人:3.2万
展开全部
楼主的问题解决了吗?我也遇到相同的问题,求教!
追问
解决了
现在忘了如果你没解决 可以联系我,我上电脑看看原来的代码回忆一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式