新手上路
- 积分
- 33
- 金钱
- 33
- 注册时间
- 2018-4-14
- 在线时间
- 4 小时
|
接受的是定长帧,25字节,波特率115200,HAL库
遇到的困难是:1.HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size),这个函数中,如果SIZE设置为25时,帧头存放在数组的任意位置,但是希望能够pData[0]中存放帧头
2.自己曾经想过的想法的是,先把SIZE设置为1,然后找到帧头后,将SIZE设置为24,然后再设置为25,这种方法用HAL_UART_Receive_DMA()试过,也直接改变过几个寄存器,但是都没有成功
3.尝试2,找到帧头后,HAL_UART_DMAStop(),然后再HAL_UART_Receive_DMA,但是这种方法帧头位置直接刷新
4.尝试3,在HAL_UART_RxCpltCallback()中,找到帧头,然后把数据给到另外应该数组data1中,然后对data1排序,但是不知道是波特率太快还是怎么,data1并不会刷新,而且会进入HardFault_Handler()中
希望大佬们指点一二,萌新一定虚心接受 |
|