新手上路
- 积分
- 29
- 金钱
- 29
- 注册时间
- 2017-11-23
- 在线时间
- 6 小时
|
1金钱
现在在做一个类似飞控的项目,采集GPS定位信息,发送给后台服务器。因为数据量比较大,采用串口DMA的方式实现。
初次接触STM32,对标准库不熟悉,就用了HAL库。虽然图形化建立工程比较容易,但是后面的coding问题就出来了,现在卡在实现DMA接收上。
发送时调用HAL_UART_Transmit_DMA()函数,网上例程也比较多,参考着也就实现了。但是接收就搞不定。还是对HAL库架构不熟悉所致。因此想问几个问题,盼大家回复。
问题:
1)按照CubeMX模板构建完工程后,串口的中断标志位是不是都已经置好了?串口等是不是都已经使能?在中断处理函数里还需要清标志位,置位吗?这是关于HAL库的特点来问的。
2)用标准库时,是一步步的对串口进行配置,比如端口初始化、启用中断、使能端口等等,包括串口和内存地址。但是HAL库里貌似取消了在初始化时设置串口和内存地址,只能通过内部定义的函数START_DMA()或者START_DMA_IT()。
这里的问题是,使用HAL库,实现大量数据接收,把接收的数据拷贝到另外一个缓冲区进行处理,实现的思路大概是什么样子?
3)项目紧急,个人能力有限,希望得到一些支持,不知有没有朋友有意支持。请加微信ahcong428联系。
谢谢!
|
|