求助:STM32F103程序编译报错expected an expression

2019-07-21 02:14发布

不是C90编译和C99编译的问题,我尝试过了,没有效果,所以请不要说更改为C99,谢谢。宏定义及其他的我在其他程序使用是正常的,这个程序和其他程序使用同一个模板,所以这个写法是可以的。
整体程序放在附件中:


具体问题如下:
程序运行是软件模拟SPI通讯,然后昨天运行是正常的,然后晚上我运行就出错了,然后只有这个出错,而且这个写法在其他的文件中没有错误,只有这个出错,并且我复制了其他地方正确头文件和代码放在这里也是出错,程序头文件和代码如下:
头文件:
[mw_shl_code=c,true]#ifndef __OUTOUT_H
#define __OUTOUT_H
#include "sys.h"

#define TLC_DIN PCout(0)
#define TLC_CS PCout(1)
#define TLC_SCLK PCout(2)



void OUTOUT_Init(void);



#endif

[/mw_shl_code]


程序main函数报错部分如下:
[mw_shl_code=c,true]
void SPI_Write_Byte(unsigned char data_in)
{
TLC_SCLK=0;
if((0x80&data_in)==0x80)
{
         TLC_DIN=1;
}
else
{
         TLC_DIN=0;
}
TLC_SCLK=1;

TLC_SCLK=0;
if((0x40&data_in)==0x40)
  {
         TLC_DIN=1;
}
else
{
         TLC_DIN=0;
}
TLC_SCLK=1;


TLC_SCLK=0;
  if((0x20&data_in)==0x20)
  {
         TLC_DIN=1;
}
else
{
         TLC_DIN=0;
}
TLC_SCLK=1;


TLC_SCLK=0;
if((0x10&data_in)==0x10)
  {
         TLC_DIN=1;
}
else
{
         TLC_DIN=0;
}
TLC_SCLK=1;


TLC_SCLK=0;
if((0x8&data_in)==0x8)
  {
         TLC_DIN=1;
}
else
{
         TLC_DIN=0;
}
TLC_SCLK=1;


TLC_SCLK=0;
if((0x4&data_in)==0x4)
  {
         TLC_DIN=1;
}
else
{
         TLC_DIN=0;
}
TLC_SCLK=1;


TLC_SCLK=0;
if((0x2&data_in)==0x2)
  {
         TLC_DIN=1;
}
else
{
         TLC_DIN=0;
}
TLC_SCLK=1;


TLC_SCLK=0;
if((0x1&data_in)==0x1)
  {
         TLC_DIN=1;
}
else
{
         TLC_DIN=0;
}
TLC_SCLK=1;
}



void D_A_Converter(unsigned int data_in)
{
unsigned char h_data;
unsigned char l_data;
data_in<<=2;
h_data=(data_in>>8);
l_data=(0x00ff&data_in);
TLC_SCLK=0;
TLC_CS=0;                                                                                                                                                                                                       
SPI_Write_Byte(h_data);
SPI_Write_Byte(l_data);
TLC_SCLK=0;
TLC_CS=1;
}[/mw_shl_code]

编译报错代码如下图:
报错 报错



TCL5615.zip (345.21 KB, 下载次数: 3) 2019-4-28 09:11 上传 点击文件名下载附件
整体代码



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
nashui_sx
1楼-- · 2019-07-21 07:54
本帖最后由 nashui_sx 于 2019-4-28 09:37 编辑

sys.h 的第30行 你误操作了  
#define GPIOC_ODR_Addr    (GPIOC_BASE+12) /  /0x4001100C
注释的两个//中间有空格


forever99
2楼-- · 2019-07-21 13:44
nashui_sx 发表于 2019-4-28 09:12
sys.h 的第30行 你误操作了  
#define GPIOC_ODR_Addr    (GPIOC_BASE+12) /  /0x4001100C
注释的两个// ...

谢谢大佬,我编译成功了
forever99
3楼-- · 2019-07-21 13:56
帖中附件为连接TLC5615数模转换发送播放音乐源程序,此楼为已修改附件,需要可以自行下载。
引脚PC0,1,2分别对应DIN,CS,SCLK

一周热门 更多>