金牌会员
 
- 积分
- 1101
- 金钱
- 1101
- 注册时间
- 2018-6-24
- 在线时间
- 158 小时
|

楼主 |
发表于 2021-7-9 11:21:43
|
显示全部楼层
@阿侑
// len=USART2_RX_STA&0x3fff;//得到电脑助手发来的一大包数据
// USART2_RX_BUF[len]=0;
去除这两行也不影响结果。
下面这个是发送函数的原型,奇怪的是按你的意思把TX_BUFF改成RXBUFF反而传输不全。不知是这DMA还是vsprintf很奇葩
void u2_printf(char* fmt,...){
u8 t;
va_list ap;
va_start(ap,fmt);
vsprintf((char*)USART2_TX_BUF,fmt,ap);
va_end(ap);
while(DMA1_Channel7->CNDTR!=0); //等待通道7传输完成
UART_DMA_Enable(DMA1_Channel7,strlen((const char*)USART2_TX_BUF)); //通过dma发送出去。!!!这里把USART2_TX_BUF改成USART2_RX_BUF反而少传4,5十个字节!!! |
|