#ifndef CONF_SERCOM_0_USART_BAUD
//#define CONF_SERCOM_0_USART_BAUD 9600
#if (*(__IO uint8_t*)(((uint32_t)0x44000000))==0x01)
#define CONF_SERCOM_0_USART_BAUD 2400
#elif (*(__IO uint8_t*)(SEEPROM_ADDR+15)==0x02
#define CONF_SERCOM_0_USART_BAUD 4800
#elif (*(__IO uint8_t*)(SEEPROM_ADDR+15)==0x03
#define CONF_SERCOM_0_USART_BAUD 9600
#elif (*(__IO uint8_t*)(SEEPROM_ADDR+15)==0x04
#define CONF_SERCOM_0_USART_BAUD 115200
#else
#define CONF_SERCOM_0_USART_BAUD 2400
#endif
#endif
这种定义方式为什么报错啊 “operator '*' has no left operand”这是错误信息
以前STM32 用过这种方式 现在换成atmel studio编译器 换成ATSAM芯片 这种方式就不行了么?
你上面的代码少了一堆右括号,但我觉得这不是重点
你这个要实现的功能,不能用宏定义来实现,宏定义是在编译的预处理时期进行处理的,而你上面写的代码,需要在运行期才能判断的出来。在编译时期是编译器在pc上分析程序,怎么能知道硬件电路存储器里面的内容呢?
哦 知道啊 谢谢 但是我记得我以前stm32 这样操作过
确实太作孽了。
这也算是 活久见了。
到底是怎样的作孽,才会想到在编译期间确定 波特率。