完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
将keil文件夹下的ARM > Startup下的Retarget.c复制过来,并加到工程里去,如下
我没改main文件后缀为.cpp,因为改了后cubemx会找不到这个main.c文件,再生成可能会有问题,改项目文件属性为C++就行了 改项目文件属性:右击第一个选项里 Retarget.c改动如下 #include #include #include //#pragma import(__use_no_semihosting_swi)//ARM Compiler6不兼容import,改为下面的内联函数 __asm(".global __use_no_semihosting"); extern int sendchar(int ch); /* in Serial.c */ //extern int getkey(void); /* in Serial.c */ extern long timeval; /* in Time.c */ struct __FILE { int handle; /* Add whatever you need here */ }; FILE __stdout; FILE __stdin; int fputc(int ch, FILE *f) { return (sendchar(ch)); } //int fgetc(FILE *f) { // return (sendchar(getkey())); //} int ferror(FILE *f) { /* Your implementation of ferror */ return EOF; } void _ttywrch(int ch) { sendchar (ch); } void _sys_exit(int return_code) { while (1); /* endless loop */ } 然后在main.c里, #include "stdio.h" UART_HandleTypeDef huart1; DMA_HandleTypeDef hdma_usart1_rx; SRAM_HandleTypeDef hsram4; //上面的是文件里有的 //添加如下 /* USER CODE BEGIN PV */ int sendchar(int ch) { HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,HAL_MAX_DELAY); return ch; } 就能用了,stm没有个完整的解决办法,晕 Retarget.c直接和项目文件一起编译就行了 |
|
|
|
只有小组成员才能发言,加入小组>>
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
529 浏览 2 评论
551 浏览 2 评论
信号发生器产生的正弦频率信号,用定时器进行捕获,当幅值低于3V后为什么MCU就无法捕获到了?
209 浏览 2 评论
876 浏览 2 评论
编码器模式下,中断内访问其他定时器cnt值,会导致进入中断次数丢失的原因?
859 浏览 2 评论
1331浏览 9评论
STM32出现error downloading following files怎么解决?
29浏览 3评论
stm32f103的RST复位后PWM就停止输出了,为什么?
37浏览 3评论
STM32G0空闲中断异常,且DMA接收不到数据是怎么回事?
24浏览 3评论
STM32F103用Timer3TRGO通道触发ADC,ADC在三路输出PWM高电平中间点采样,如何配置?
15浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 13:44 , Processed in 0.729373 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号