王昱顺 发表于 2025-1-9 12:12:37

Ai8051U-32Bit 创新风格库函数, 4/26更新,持续完善,USB型,内部视频培训, 听取建议

USB型,Ai8051U-32Bit 创新风格库函数持续开发中,内部视频培训,听取建议
简介:
Ai8051U是一款强大而简单的 MCU,新增了很多强大的新功能,为方便只具有C语言基础的初学者,
我们全新打造了 更人性化的国芯Ai8051U专属库函数,听取大家的建议,不断改进!

以下是库函数配套的代码生成小工具网站,目前仅作测试
AI8051U 库函数工具导航

库函数更新周期:
未完成前大约2~3天进行一次更新,如果有较大问题会立刻修复。
全部完成后进入维护期,期间有好的建议/想法或者bug反馈会尽量在7天内进行处理。
库函数的操作手册:
PDF版本手册在这个链接:
AI8051U专属库函数-PDF版本使用手册 - FOC,有ICache的 32F12K54 测试版块 国芯技术交流网站 - AI32位8051交流社区
里面会进行使用说明的举例,有使用问题欢迎在这个链接内提出。
如果是较为普遍的问题,会同时收录进入PDF版本的手册。
库函数预计更新内容(暂时性的,作为备忘录,会随时更新):
1.通过外挂额外的程序实现库函数内部的深度优化,进一步缩减体积
2.依赖SPI库实现的0.96'/1.3'OLED驱动库
3.时钟树控制部分
库函数目前拥有的内容:
1.自动获取运行主频功能(内部HIRC的所有频率都可以识别),并自动参与初始化计算(例如定时器的定时时间)
2.接近直接使用寄存器的体积占用(xfr部分使用指针访问优化)
3.可以设置I/O的所有模式,以及设置上拉电阻、下拉电阻、施密特输出、转换速度、驱动电流等。
4.设置I/O的独立中断触发部分。
5.设置外部中断部分,包括各种模式和中断状态获取(无需关心实际的中断函数)。
6.设置定时器(包括T0~T4,T11),新增一键设置定时器,一行代码即可实现定时器配置,并可支持外部脉冲计数。
7.设置串口(包含串口DMA部分),新增支持一键配置函数支持默认值,并可使用拓展的uart_printf函数,快速交互。
8.使用ADC部分(包括连续转换和单次触发模式)。
9.使用I2C部分(可以随意组合的指令串风格)
10.使用SPI部分(支持DMA并可以同时使用三路SPI)
11.使用PWM部分(支持同时使用8路PWM通道输出,同时捕获输入8路信号的周期或4路信号的占空比)
12.使用EEPROM部分(支持均衡磨损使用,带有变量绑定机制)
13.使用协程的多线程应用支持,可以支持95%场景分时非堵塞任务
USB型,Ai8051U 创新风格 库函数讲解演示视频, 逐步添加完善中:
第一集:I/O口模式设置,传统外部中断【INT0, INT1, INT2, INT3, INT4】
(注:视频中的if(get_int_state(INT0))应该替换为if(get_int_state(Int0)),编写程序时的笔误,Int1也是如此)
第二集:所有普通 I/O口 都支持的外部中断
第三集:定时器,【16位自动重装载定时器 + 8位预分频或不分频】= 24位定时器
第四集:串口通信,有DMA支持,有接收超时中断
第五集:ADC 库函数讲解
第六集:高级PWM输出和输入捕获,可互补带死区输出,可同时捕获4路信号占空比和周期,或同时捕获八路信号周期
USB型,Ai8051U 创新风格 库函数讲解演示视频, 逐步添加完善中:
===手把手,一行行带您手敲代码学习
##第一集 I/O口模式和传统的外部中断 https://v.stcai.com/sv/2de3ba89-194e4ef5a0a/2de3ba89-194e4ef5a0a.mp4
##第二集 所有普通I/O口都支持的外部中断 https://v.stcai.com/sv/11614e44-194e4285bdc/11614e44-194e4285bdc.mp4
##第三集 24位定时器 https://v.stcai.com/sv/4b9bbdb8-194de5bdc59/4b9bbdb8-194de5bdc59.mp4
##第四集 串口部分库函数讲解 https://v.stcai.com/sv/515da520-194fd087058/515da520-194fd087058.mp4
##第五集 ADC部分库函数讲解 https://v.stcai.com/sv/2436667f-194fd078365/2436667f-194fd078365.mp4
##第六集 PWM输出和支持八路的PWM捕获输入 https://v.stcai.com/sv/5bc2bbd4-19660909737/5bc2bbd4-19660909737.mp4
##第七集 协程-多任务快速实现,简单移植 https://v.stcai.com/sv/17e0613d-19660909726/17e0613d-19660909726.mp4

USB型,Ai8051U创新风格库函数下载链接,持续完善中:


王昱顺 发表于 2025-1-9 12:12:49

AI8051U专属库函数更新记录
(仅作展示,只保留最新5条,详细记录可以查看压缩包内的详细更新记录)

2025年4月26日 11点27分
-Auto_Keil更新保存地址使用相对地址,以防止初次编译出错

2025年4月17日 18点58分
-修复有关自动获取时钟时,可能会错误关闭总中断的问题

2025年4月17日 15点03分
-修复有关Timer11中断函数设置中的一处数组越界问题

2025年4月14日 16点42分
-修复协程部分中,task_end的等待问题
-增加task_while参数,推荐调用方式为task_while(1){...};task_break(条件);
-修复独立例程9-使用协程完成多任务调度内的注释错误

2025年4月9日 14点22分
-更新定时器部分库函数,支持外部脉冲计数
-每次获取后自动清零,需注意定时器的外部脉冲计数引脚是固定的
-更新独立例程2设置定时器及外部中断部分(T0,T1,T2,T3,T4,T11)
-使用USB-CDC显示程序主动触发的脉冲和读取到的定时器脉冲数据



_奶咖君_ 发表于 2025-1-9 13:16:51

做成功能可裁剪的?{:tuosai:}

王昱顺 发表于 2025-1-9 14:10:21

_奶咖君_ 发表于 2025-1-9 13:16
做成功能可裁剪的?

易用性和空间占用无法同时保证,只能尽量对功能做细分,到时候按需加入部分库函数。
如果想要同时拥有易用性和占用空间小,只能通过额外的软件直接生成经过裁剪的寄存器配置代码

_奶咖君_ 发表于 2025-1-9 14:26:52

王昱顺 发表于 2025-1-9 14:10
易用性和空间占用无法同时保证,只能尽量对功能做细分,到时候按需加入部分库函数。
如果想要同时拥有易 ...

对 就是按需加入库函数,,做一个配置文件,利用宏定义开启或者关闭暂时用不到的功能。。我觉得应该就可以了{:xiaoku:}

鱼和熊掌当然是不可得兼,,吃鱼的时候,尽可能的闻闻熊掌的味道,也未尝不可。

王昱顺 发表于 2025-1-9 14:29:00

_奶咖君_ 发表于 2025-1-9 14:26
对 就是按需加入库函数,,做一个配置文件,利用宏定义开启或者关闭暂时用不到的功能。。我觉得应该就可 ...

这个目前已经通过REMOVEUNUSED进行支持了,不调用的文件默认就是不参与编译的。
调用的占用较大这个暂时没什么很好的办法,只能尽量的优化了。

_奶咖君_ 发表于 2025-1-9 14:30:08

王昱顺 发表于 2025-1-9 14:29
这个目前已经通过REMOVEUNUSED进行支持了,不调用的文件默认就是不参与编译的。
调用的占用较大这个暂时 ...

用这个命令 确实 可以,,,,但是你的扩展中断。。。。{:xiaoku:}咋办

_奶咖君_ 发表于 2025-1-9 17:11:43

<p>这个命令和小工具可以一块用了?</p>

王昱顺 发表于 2025-1-9 17:41:02

_奶咖君_ 发表于 2025-1-9 17:11
这个命令和小工具可以一块用了?

32bit模式下一直都是可以一起用的,目前暂时不考虑支持8bit,所以是能用的

_奶咖君_ 发表于 2025-1-9 17:47:29

王昱顺 发表于 2025-1-9 17:41
32bit模式下一直都是可以一起用的,目前暂时不考虑支持8bit,所以是能用的 ...
原来如此,,那没事了,,

突然又想起来一件事,,,32Bit下,,这个命令不是和除法运算有什么问题的说?好像是说汇编上会多生成一个什么命令?
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: Ai8051U-32Bit 创新风格库函数, 4/26更新,持续完善,USB型,内部视频培训, 听取建议