liklon

    1. Alaric 发表于 2020-6-11 09:48 支持,感觉像是一个设备框架
      多谢支持,设备驱动结构也是这里面的一个重点。还有一个部分是功能模块,通过配置文件来选择需要使用的功能模块
    2. ilovefengshulin 发表于 2020-6-10 15:48 有点像RTOS全家桶,帮顶
      多谢支持,这个不是RTOS,现在已经有很多RTOS了,所以咱们就不想着去凑热闹,将这份代码的定位在给裸机开发用户使用,带框架的功能模块和驱动库。使用RTOS的用户也可以拿这份代码做功能库和驱动库
    3. 最新的 proteus 8.9sp2 148/20706 单片机 2020-06-10
      看一下,是否解决了闪退和时钟不准的问题
    4. arm8686 发表于 2020-6-10 08:59 先 star!再细看。 为以下的集成点个赞(外链已去除): BabyOS包含了第三方开源代码,这部分代码都 ...
      多谢支持,除了下面几项,还集成了FatFS LittleFS以及SFUD,都是一键启用,算是比较方便省事了
    5. 在这里是很诚心地寻找愿一起开发的朋友。希望有兴趣的朋友可以先去仓库克隆一份代码后实际的看一看。在看完代码,阅读完README后依然有兴趣的就加入进来吧,如果看了后发现有待改进的地方也加入进来一起优化吧!如果您没有看代码或者README也没看,只能说谢谢光临此贴!
    6. yang_alex 发表于 2020-6-9 23:19 BabyOS都支持哪些内核的MCU啊?不同的MCU,指令不同,底层的驱动都要封装一遍。另外最好先实现图形界面的配 ...
      您可以先看看代码,BabyOS不考虑指令。目前建议使用M系列内核的MCU使用。BabyOS有一个硬件抽象层,不同的MCU只需要实现硬件抽象层里的API即可,驱动和功能模块不用修改,直接使用。不用图形化配置界面,对于驱动来说,只需要修改b_hal里的硬件接口定义,而对于功能模块来说,如果你是使用MDK那么可以使用MDK自带的图形配置界面。建议您先实际看看代码或者是仓库的README
    7. GuyGraphics 发表于 2020-6-9 20:10 看着像是泛AUTOSAR项目,给楼主点赞!
      多谢支持:)
    8. okhxyyo 发表于 2020-6-9 17:04 给楼主点赞!楼主加油!给你挂到今日焦点上宣传一下
      多谢支持多谢支持
    9. 一套适合小型项目使用的通用代码 18/16346 单片机 2020-02-22
      BabyOS是一个活跃的项目,保持一直更新。后续不再到此贴回复最新更新。有兴趣的可以直接到源码地址查看最新动态! 补充内容 (2020-3-8 12:44): 为了方便使用,增加BabyOS使用教程: https://gitee.com/notrynohigh/BabyOS_Example 在每个分支的README都写有详细步骤。 子模块为BabyOS master分支 https://gitee.com/notrynohigh/BabyOS
    10. 一套适合小型项目使用的通用代码 18/16346 单片机 2020-02-13
      新增两项方便传输文件至MCU Xmodem128   //Xmodem128的接收部分 int bXmodem128Init(pcb_t fcb, psend fs);  //初始化,注册回调以及指定发送字节的函数 int bXmodem128Parse(uint8_t *pbuf, uint8_t len); //数据解析,接收到数据后调用此函数。需要将一段数据接收完成后再调用此函数,不能一个字节一个字节的往里放 int bXmodem128Start(void);   //启动接收 int bXmodem128Stop(void);    //中断接收 void bXmodem128Timeout(void);   //判断超时,由bExec()调用 ​ typedef void (*pcb_t)(uint8_t number, uint8_t *pbuf); //回调函数,number为序号,pbuf为数据指针。每次的数据长度都是128字节 ​     Ymodem int bYmodemInit(pymcb_t fcb, pymsend fs); //初始化,注册回调以及指定发送字节的函数 int bYmodemParse(uint8_t *pbuf, uint16_t len); //数据解析,接收到数据后调用此函数。需要将一段数据接收完成后再调用此函数,不能一个字节一个字节的往里放 int bYmodemStart(void);  //启动接收 int bYmodemStop(void);   //中断接收 void bYmodemTimeout(void);   //判断超时,由bExec()调用 ​ typedef void (*pymcb_t)(uint8_t t, uint8_t number, uint8_t *pbuf, uint16_t len); //回调函数,t为数据类型(文件名/数据)number为序号,pbuf为数据指针,len为数据长度 ​   代码中有实例,利用Xmodem128和Ymodem接收文件,存储至spiflash内,传输结束后读取出来通过串口输出。实验效果:
    11. 一套适合小型项目使用的通用代码 18/16346 单片机 2020-01-10
      BabyOS过年前最后更新一次。最近新增一项,大家帮忙看看是否有优化地方,在过年前将其改好。 新增:K/V键值对存取b_kv.c b_kv.h 基于SPI Flash存取,无文件系统。占用SPI Flash 4个最小擦除单位(4 * 4K),占用MCU内存 N * 12 Bytes (N表示最多存储多少个键值对,b_config.h配置)。 将4块最小擦除单位分为两组A,B每组两块分别存储数据索引和数据 A1  存储数据索引    A2  存储数据 B1   存储数据索引 B2   存储数据 每次修改或者新增一条K/V键值对就将信息头和数据按照顺序写入A1 A2。当A1或者A2有一块存储满后将有效数据索引和数据抽取转移到B1 B2,将主要存储去转移到B组,B组存储满后按照同样的方法转移到A组。 每次新增或者修改不会对Flash进行擦除,保证了使用寿命。 一块最小擦除单位存满后抽取有效的部分转移到另一块区域,没有在内存定义大的buffer去处理,主要考虑到MCU的内存是稀缺资源不能随意占用。 使用例子:   如图所示,利用KV存储进行系统参数的存取、修改是比较方便的。结果如下: 欢迎大家指导!https://gitee.com/notrynohigh/BabyOS
    12. 一套适合小型项目使用的通用代码 18/16346 单片机 2020-01-02
      本帖最后由 liklon 于 2020-1-3 09:25 编辑 2019_12_04~2020_01_02更新部分说明 使用说明 FIFO int bFIFO_Regist(uint8_t *pbuf, uint16_t size); //注册FIFO实例 int bFIFO_Length(int no, uint16_t *plen); //获取有效数据长度 int bFIFO_Flush(int no); //FIFO读写复位 int bFIFO_Write(int no, uint8_t *pbuf, uint16_t size); //写入数据 int bFIFO_Read(int no, uint8_t *pbuf, uint16_t size); //读取数据 AT typedef struct { uint8_t *pResp; //响应数据 uint16_t len; //响应数据长度 uint32_t timeout; //给定超时时间,调用bAT_Write之前给定超时时间 }bAT_ExpectedResp_t; int bAT_Regist(pAT_TX ptx); //注册AT使用实例,ptx是发送数据的接口 int bAT_Write(int no, bAT_ExpectedResp_t *pe_resp, const char *pcmd, ...); //发送AT指令, 实例ID 结构体,如所述 不定长参数 int bAT_Read(int no, uint8_t *pbuf, uint16_t size); //例如AT指令通过串口进行收发,串口接收到模块响应数据后将数据通过这个函数提交给AT单元 //使用详情可见bos/drivers/src/b_f8l10d.c Nr_micro_shell int bShellStart(void); //shell 初始化 int bShellParse(uint8_t *pbuf, uint16_t len); //例如用串口进行交互,串口收到数据后将数据通过此函数丢给shell进行解析
    13. 一套适合小型项目使用的通用代码 18/16346 单片机 2019-12-24
      huo_hu 发表于 2019-12-24 14:26 其实并不存在所谓的通用软硬件,只是符合一定的协议标准的设备而已,没有协议都是空的.
      很高兴能和您针对这方面做讨论,对于MCU的通用,我是这样想的。 功能模块方面,不依赖于硬件的一套代码,例如FIFO,UTC转换,存储机制,这些在项目中都会用到,而这些功能模块我们确实能写成不依赖硬件。那么这就是对于MCU的通用功能模块。 驱动方面,能够有一套标准的接口去操作外设,对于MCU来说也是通用,例如这份代码中,我联系将操作外设的接口写成文件操作。这样我们用起来的时候非常方便,更换硬件不需要动业务部分代码。       总的来说,通用并不是一套代码能够满足任何项目,而是一套标准的东西能方便开发,或者是减少开发时间,拿来就可以用。
    14. 一套适合小型项目使用的通用代码 18/16346 单片机 2019-12-24
      huo_hu 发表于 2019-12-24 11:07 不太感兴趣,那有那么简单啊,就拿adc来说吧,如果不考虑数据传输,采样位数,采样通道数,采样频率,采样时间同步 ...
      还是拿你这个ADC说吧,ADC确实是要考虑你所说的采样位数、通道、频率和采样时间等等。注意哦,你说的这些都是驱动部分。而我这份代码里面所涉及的功能模块是不依赖具体硬件。比如电池电量的采样,ADC采样的函数是做的一个弱函数,ADC实现是用户根据自己的硬件去实现。所以你提到的这些完全不是问题。        再从驱动来说,第一ADC是MCU自带的还是外置芯片,如果是ADC自带的,那么使用时需要根据自己的平台去实现。第二如果是外置芯片,那么是不是可以将这个芯片的驱动写成通用的代码。        不管从功能模块还是驱动来说,你提到的都不是问题
    15. 一套适合小型项目使用的通用代码 18/16346 单片机 2019-12-24
      symic 发表于 2019-12-23 21:19 很有趣的想法,期待能提供自己的贡献
      有兴趣咱们可以一起开发的。
    16. 一套适合小型项目使用的通用代码 18/16346 单片机 2019-12-23
      110gm 发表于 2019-12-18 12:53 不错@过来好好看看,学习学习。。
      欢迎添加驱动和功能模块哦,码云上的代码比github上访问快一些 https://gitee.com/notrynohigh/BabyOS
    17. 一套适合小型项目使用的通用代码 18/16346 单片机 2019-12-10
      还是需要网友增加驱动和功能模块,这些丰富了,才能体现出它的优势,加速小项目的开发。
    18. linshifaa 发表于 2018-10-4 00:53 楼主你用的是W25X  flash吗??
      是的,华邦的
    19. nmg 发表于 2018-9-23 21:00 liklon,能否做一下录制一下作品的功能演示视频
      已经补充了演示视频
    20. lehuijie 发表于 2018-9-8 15:17 想问一下,上位机是自己写的吗?
      是啊,QT很方便

最近访客

< 1/3 >

统计信息

已有188人来访过

  • 芯积分:10
  • 好友:--
  • 主题:12
  • 回复:45

留言

你需要登录后才可以留言 登录 | 注册


tylerzhang 2018-10-11
你好,可以加个QQ好友吗,感谢!
tylerzhang 2018-10-11
你好,请问USART_INT_RBNE无法触发中断,USART_INT_TBE可以进入中断,什么原因?
查看全部