完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
#include "stdio.h"
#ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #define GETCHAR_PROTOTYPE int __io_getchar(FILE *f) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #define GETCHAR_PROTOTYPE int fgetc(FILE *f) #endif //HAL库 PUTCHAR_PROTOTYPE { HAL_UART_Transmit(&huart3, (uint8_t*)&ch, 1, HAL_MAX_DELAY); return ch; } GETCHAR_PROTOTYPE { uint8_t ch; HAL_UART_Receive(&huart3,(uint8_t *)&ch, 1, HAL_MAX_DELAY); return ch; } //寄存器 PUTCHAR_PROTOTYPE { while((USART3->ISR & UART_FLAG_TC) == RESET); USART3->TDR=(uint8_t)ch; return ch; } GETCHAR_PROTOTYPE { while((USART3->ISR & UART_FLAG_RXNE) == RESET); return (uint8_t)(USART3->RDR); } 注意:printf()和scanf()都是用轮询方式,没有使用中断。调用scanf()在串口助手中输入数据时,必须以空格结束,然后点击发送,否则无法完成发送。 使用标准库(__use_no_semihosting) #pragma import(__use_no_semihosting) //标准库需要的支持函数 struct __FILE { int handle; }; FILE __stdout; //定义_sys_exit()以避免使用半主机模式 _sys_exit(int x) { x = x; } int fputc(int ch, FILE *f) { while((USART3->ISR & UART_FLAG_TC) == RESET); USART3->TDR=(uint8_t)ch; return ch; } 把printf重新宏定义了一下,使用时候就可以使用自己的函数,不想开printf时候改掉宏定义就好了 #define log(...) printf(__VA_ARGS__) 1 重写printf #include #include void USART3_Printf (const void *format, ...) { static uint8_t Buff[100]; va_list args; uint32_t Len; va_start(args, format); Len = vsnprintf((char *)Buff, 100, (char *)format, args); va_end(args); HAL_UART_Transmit(&huart3, (uint8_t *)Buff, Len, 1000); } 使能浮点 |
|
|
|
只有小组成员才能发言,加入小组>>
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
382 浏览 1 评论
250 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
230 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
590 浏览 2 评论
615 浏览 2 评论
1345浏览 9评论
STM32F429 U盘IAP升级程序跳转APP异常的原因?
14浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
12浏览 3评论
STM32F103时钟硬件程序会卡在“while((SPI3->SR SPI_I2S_FLAG_RXNE) == (uint16_t)RESET);”导致异常复位的原因?
36浏览 3评论
10浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-19 21:15 , Processed in 0.673193 second(s), Total 70, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号