- 博客(3)
- 收藏
- 关注
原创 HC32F4A0串口3+DMA收发实现
然后编写DMA_SENDDATA函数里面,需要配置源地址,传输次数,最重要是需要重新打开dma通道和串口tx发送使能。然后编写DMA_RECVDATA函数里面,需要配置源地址,传输次数,最重要是需要重新打开dma通道和串口RX使能。这里,我用串口3实现了dma的发送(DMA1)和dma的接收(DMA2)。对于dma发送的逻辑:DMA发送触发→DMA开始发送→TC传输完成,触发DMA中断。对于dma接收的逻辑:DMA发送触发→DMA开始发送→TC传输完成,触发DMA中断。
2024-12-12 10:09:34
519
原创 HC32F4A0串口重定义printf
在使用新版SDK库时,发现和旧版的printf映射函数不一样了。需要重写fputc函数。第一次写的fputc函数,是先发送数据后判断tx寄存器状态,这就会导致第一个数据丢失。如果在main函数中调用串口发送函数api,会出现根本发送不了的问题,除非加入延迟。所以修改后的fputc函数应该先判断tx寄存器的位,然后调用发送函数。
2024-12-11 11:09:59
482
原创 lwip tcp stm32 rtos 多客户端连接问题
最近在搞多客户端连接问题,使用的方法是任务创建的形式。一共2个任务,一个任务专门用于监听客户端的连接状态,一个任务就是客户端数据处理函数。MEMP_NUM_TCP_PCB MEMP_NUM_TCP_PCB_LISTEN MEMP_NUM_NETCONN 这三个宏限制的。1.客户端连接断开后,再次重新连接,发现服务器从网络上接受的数据是错误的。问题是:接受和发送的buff没有释放内存。2.多个客户端连接后,发现程序会直接死掉。3.多客户端连接数量的问题,发现lwip的客户端连接数量是受到。
2024-12-09 14:20:05
567
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人