
STM8S003无法检测到引脚电平
STM8 @svlreg 问题
STM8AF62XX+L99PM62GXP LIN通讯的电路原理图有吗?官网提供了一套软件,没找到对应的原理图,请大家指教一下
求一个STM8S207例程
初次接触STM8,请问在STVD中,为什么这个Struct会报错
STMS005K6T6 如何采集内部参考电压。
stm8s003 adc中断和通道切换的问题
adc施密特触发器stm8
stm8l051f3 TSSOP20 封装,待机模式下,2天后,电流突然增加到140UA
STM8S用STVP烧录怎么加密?
评分
查看全部评分
FLash太小了,需要 0x3142字节空间,而你的片片只有0x009fff-0x008000=0x2000字节。
评分
查看全部评分
是的,但是我不引用printf函数就不会报错,我的代码量并不大,只有几行,但是一调用printf就报这个错
我觉得是引用printf函数造成的
#ifdef _RAISONANCE_
#define PUTCHAR_PROTOTYPE int putchar(char c)
#define GETCHAR_PROTOTYPE int getchar(void)
#elif defined (_COSMIC_)
#define PUTCHAR_PROTOTYPE char putchar(char c)
#define GETCHAR_PROTOTYPE char getchar(void)
#else /* _IAR_ */
#define PUTCHAR_PROTOTYPE int putchar(int c)
#define GETCHAR_PROTOTYPE int getchar(void)
#endif /* _RAISONANCE_ */
//重定向printf和getchar函数
PUTCHAR_PROTOTYPE
{
/* Write a character to the USART */
USART_SendData8(USART1, c);
/* Loop until the end of transmission */
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)== RESET);
return(c);
}
GETCHAR_PROTOTYPE
{
int c = 0;
/* Loop until the Read data register flag is SET */
while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE)== RESET);
c = USART_ReceiveData8(USART1);
return(c);
}
但是我重定向了啊,不知道是什么原因造成不能引用
#ifdef _RAISONANCE_
#define PUTCHAR_PROTOTYPE int putchar(char c)
#define GETCHAR_PROTOTYPE int getchar(void)
#elif defined (_COSMIC_)
#define PUTCHAR_PROTOTYPE char putchar(char c)
#define GETCHAR_PROTOTYPE char getchar(void)
#else /* _IAR_ */
#define PUTCHAR_PROTOTYPE int putchar(int c)
#define GETCHAR_PROTOTYPE int getchar(void)
#endif /* _RAISONANCE_ */
//重定向printf和getchar函数
PUTCHAR_PROTOTYPE
{
/* Write a character to the USART */
USART_SendData8(USART1, c);
/* Loop until the end of transmission */
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)== RESET);
return(c);
}
GETCHAR_PROTOTYPE
{
int c = 0;
/* Loop until the Read data register flag is SET */
while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE)== RESET);
c = USART_ReceiveData8(USART1);
return(c);
}
但是我重定向了啊,不知道是什么原因造成不能引用
重定向,不会减小printf的开销,因为printf功能比较多,那怕你用一条printf,它的原函数也一样要全部编译进来。
要想减小空间占用,只能自己写个简单的类似printf的函数。
根本原因是MCU的程序空间太小,你换个大一点的,就能成功。
评分
查看全部评分
http://mp.weixin.qq.com/s?__biz= ... =21#wechat_redirect
但是我是按照这个来实现的,为什么他是可以的呢
https://www.stmcu.org.cn/module/forum/thread-615996-1-1.html
但是我是参照这个例程实现的,为什么他这个可以呢
还是要检查头文件
另外可参考【STM8S单片机printf函数重定向到串口】【IAR for STM8重定向printf 】
需要配置USART并使能它
我认为是IAR设置的问题,但是我不知道如何能够设置正确