OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2041|回复: 3

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

[复制链接]

1

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-4-10
在线时间
12 小时
发表于 2019-4-28 09:12:23 | 显示全部楼层 |阅读模式
5金钱
不是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, 下载次数: 6)

最佳答案

查看完整内容[请看2#楼]

sys.h 的第30行 你误操作了 #define GPIOC_ODR_Addr (GPIOC_BASE+12) / /0x4001100C 注释的两个//中间有空格
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-4-28 09:12:24 | 显示全部楼层
本帖最后由 nashui_sx 于 2019-4-28 09:37 编辑

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


回复

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-4-10
在线时间
12 小时
 楼主| 发表于 2019-4-28 09:44:15 | 显示全部楼层
nashui_sx 发表于 2019-4-28 09:12
sys.h 的第30行 你误操作了  
#define GPIOC_ODR_Addr    (GPIOC_BASE+12) /  /0x4001100C
注释的两个// ...

谢谢大佬,我编译成功了
回复

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-4-10
在线时间
12 小时
 楼主| 发表于 2019-4-28 10:03:17 | 显示全部楼层
帖中附件为连接TLC5615数模转换发送播放音乐源程序,此楼为已修改附件,需要可以自行下载。
引脚PC0,1,2分别对应DIN,CS,SCLK

TCL5615.zip

345.25 KB, 下载次数: 6

TLC5615使用

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 05:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表