博士
最后登录1970-1-1
在线时间 小时
注册时间2014-3-7
|
做串口通信实验时,在主函数中使用printf()函数将一些字符串通过串口打印到串口助手上,看了例程的两个实验,
有几个问题想不明白,还望各路高手指点!
问题一:
可不可以不使用printf()函数而使用自己编写的fputc()函数来将字符串输出到电脑上?
问题二:
我们没法看到printf()函数的定义,那我们怎么知道应该在fputc()函数中进行重定向?
- int fputc(int ch, FILE *f)
- {
- /* ·¢Ëíò»¸ö×Ö½úêy¾Yμ½USART1 */
- USART_SendData(USART1, (uint8_t) ch);
-
- /* μè′y·¢Ëííê±Ï */
- while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
-
- return (ch);
- }
复制代码
问题三:
我在例程中看见有个fgetc()函数,应该也是重定向的,但是却没有找到例程中在哪地方使用到。
关于使用中断接收的那个实验,在中断函数中只有将接收到的字符串发送到电脑上的功能啊,那接收的那部分是
在哪实现的(我找了好久没找到)?????
- void USART1_IRQHandler(void)
- {
- uint8_t ch;
-
- if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
- {
- //ch = USART1->DR;
- ch = USART_ReceiveData(USART1);
- printf( "%c", ch ); //½«½óêüμ½μÄêy¾YÖ±½ó·μ»Ø′òó¡
- }
-
- }
复制代码
|
|