|
原子的程序里面printf函數(shù)默認(rèn)是打印串口1的內(nèi)容,下面分享將printf函數(shù)改為打印別的串口的內(nèi)容的方法
原子的usart.c中,能找到如下代碼
//加入以下代碼,支持printf函數(shù),而不需要選擇use MicroLIB
#if 1
#pragma import(__use_no_semihosting)
//標(biāo)準(zhǔn)庫需要的支持函數(shù)
struct __FILE
{
int handle;
};
FILE __stdout;
//定義_sys_exit()以避免使用半主機(jī)模式
_sys_exit(int x)
{
x = x;
}
//重定義fputc函數(shù)
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);//循環(huán)發(fā)送,直到發(fā)送完畢
USART1->DR = (u8) ch;
return ch;
}
#endif
/*使用microLib的方法*/
/*
int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (uint8_t) ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) {}
return ch;
}
int GetKey (void) {
while (!(USART1->SR & USART_FLAG_RXNE));
return ((int)(USART1->DR & 0x1FF));
}
*/
如果你建立工程時沒有勾選魔法棒里面的use microLib選項,只需把上面的
nt fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);//循環(huán)發(fā)送,直到發(fā)送完畢
USART1->DR = (u8) ch;
return ch;
}
改為
nt fputc(int ch, FILE *f)
{
while((USART2->SR&0X40)==0);//循環(huán)發(fā)送,直到發(fā)送完畢
USART2->DR = (u8) ch;
return ch;
}
即可
如果勾選了的話,注釋掉代碼中/*使用microLib的方法*/前的代碼,取消后面的代碼的注釋,按照同樣的方法修改fputc函數(shù)即可
附:原子DMA實驗中用串口二打印DMA1傳輸串口1數(shù)據(jù)的進(jìn)度代碼
|
-
-
MA實驗 - 副本.7z
2019-7-28 02:29 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
198.92 KB, 下載次數(shù): 5, 下載積分: 黑幣 -5
評分
-
查看全部評分
|