FreeRTOS On STM32 – 自己写个linux风格的串口api

尝试移植uC/OS-II到stm32f103c8小板上一直不成功,还是先用freertos完成想做的东西再说,但是他的api实在是受不了……

那么就自己在stm32的library和freertos的api之上写个linux-posix风格的api吧,等弄完了之后再从freertos的底层优化,也把stm32的库优化。

从linux的usr/include中可以看到很多的标准头文件:unistd.h,termios.h,semaphore.h,pthread.h,fcntl.h。我的目的是提供和linux一样的使用方式,而不是一个完整的posix层,所以暂时先实现用文件io读写串口。

在linux下打开串口的代码为:

先从linux的头文件中提取数据结构和文件api

接下来就是封装stm32库的api了,因为stm32的外设挂到两个总线了APB1、APB2,所以用函数指针来封装这个差异,保证主要代码不考虑这个差别,也可以防止人为的失误:

再实现设置用的api:

开始封装标准api:

目前通过FT232的USB转串口通信正常,yeah。

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License

This entry was posted in FreeRTOS On STM32 and tagged , , , , , , , . Bookmark the permalink.