YTM32B1ME0 CddUart使用中断接收, DMA发送的DEMO
-
Mcal默认的CddUart demo是使用中断收发的, 问一下能否配置成中断接收, DMA发送的模式,
如果可以, 麻烦帮忙配置个示例Demo,
谢谢. -
-
wangtengfei ,支持
-
Frank 在 YTM32B1ME0 CddUart使用中断接收, DMA发送的DEMO 中说:
wangtengfei ,支持
假如使用 CddUart_AsyncReceive 接口接收数据, bufSize是128, 如果外部只给串口RX发了32字节后就不发了, 底层会识别到空闲然后触发回调通知吗
-
Frank 在 YTM32B1ME0 CddUart使用中断接收, DMA发送的DEMO 中说:
在配置界面使能idle中断并配置timeout时间就可以实现你要的功能
还有几个疑问:
1. TIMEOUT参数默认是0xFFF, 这个参数的单位是什么;
2. 使能TIMEOUT功能之后, IDLE后会进入 Event=IDLE的callback, 在这个callback中怎样才能获取到已传输的数据长度; -
Frank 在 YTM32B1ME0 CddUart使用中断接收, DMA发送的DEMO 中说:
- 单位是传输一个bit的时间。例如配置为10,空10个bit的时间后触发idle(timeout)中断。2. 目前Mcal版本不支持获取接收到的数据长度,你可以手动修改代码,并在事件UART_EVENT_IDLE的callback中调用CddUart_GetStatus()获取剩余接收的字节数,然后用发起接收的字节数相减即可获取接收到的数据长度,需修改的代码如下所示
好的, 问题已解决, CddUart_GetStatus在IDLE中断里获取到的长度是0, 在Mcal里调用IDLE事件回调之前已经把剩余传输长度清0了, 我自己修改了下.
- 单位是传输一个bit的时间。例如配置为10,空10个bit的时间后触发idle(timeout)中断。2. 目前Mcal版本不支持获取接收到的数据长度,你可以手动修改代码,并在事件UART_EVENT_IDLE的callback中调用CddUart_GetStatus()获取剩余接收的字节数,然后用发起接收的字节数相减即可获取接收到的数据长度,需修改的代码如下所示
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...