新手入门
- 积分
- 2
- 金钱
- 2
- 注册时间
- 2020-7-14
- 在线时间
- 0 小时
|
1金钱
本帖最后由 迈克老牛 于 2016-11-4 21:26 编辑
stm32103fzet6 用usb接电脑由电脑usb供电可以正常收放数据,但改由冲电器供电,串口仍然接电脑时,发现能正常放送数据,但接收数据时,会把收到的数据马上发送回来。感觉就象串口模块的TX和RX直接短接一样。没能触发串口接收中断。其代码就是原子哥的代码。不知是不是关掉了半主机的原因,但是屏蔽掉下面一串代码后提示错误
#if 1
#pragma import(__use_no_semihosting)
////±ê×¼¿aDèòaμÄÖ§3Öoˉêy
struct __FILE
{
int handle;
};
FILE __stdout;
//¶¨òå_sys_exit()òÔ±üÃaê1óðëÖ÷»úÄ£ê½
_sys_exit(int x)
{
x = x;
}
//ÖØ¶¨òåfputcoˉêy
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);//Ñ-»··¢Ëí,Ö±μ½·¢Ëííê±Ï
USART1->DR = (u8) ch;
return ch;
}
#endif
错误如下
Library reports error: __use_no_semihosting was requested, but _sys_exit was referenced
Library reports error: __use_no_semihosting was requested, but _sys_open was referenced
L6915E: Library reports error: __use_no_semihosting was requested, but _ttywrch was referenced
如果只关掉 #pragma import(__use_no_semihosting) 编译可以通过,但发送数据连回送都没有,就象没进中断一样。请教这是什么原因。只是改变了电源,就接收不了,程序其他部分都正常运行,就串口接收一直调不好。后来我把所有有printf的地方关掉,再关掉#pragma import(__use_no_semihosting)
只报 Library reports error: __use_no_semihosting was requested, but _sys_exit was referenced 这一个错误了,但还是有问题。
|
最佳答案
查看完整内容[请看2#楼]
已经解决,原来是usb转串口模块的地线要与板子地线相连,之前连电脑时因为板载有TTL转换模块,连接时地线同时也与电脑相连,而换到外部电源时地线相于没有电脑相连,而我的串口模块只是引出了TX和RX线,没有与板子的地线相连,所以只能发送不能接收。在这里顺便鄙视一下,那些发了问题自己解决后说一句已经解决,什么都不留下,好象自己多了不起的人。你们觉得自己付出了很多不想无偿提供答案可以明说,留下联系方式,想要多少费用 ...
|