我的个人AI8051U学习打卡贴开始了
首先今天终于把STC32F12K54的不掉电下载搞定了, 对32F12的了解更深入了些, 为将32系列用到工业中又进了一步其次今天开始要打卡8051U了
学习打卡第一天
今天学习冲哥的第一课<<序言>>
根据冲哥的介绍, 大致了解了8051U的应用场景
做工控的我, 看到该片子没有配置CAN接口....沉默片刻..
再学学看看吧, 总不能刚开始就放弃吧
虽算不上专家, 但也确实是只老鸟, 说是学习, 或许也只是了解, 看看那些地方需要自己顿足停留~~
推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接
https://v.stcai.com/sv/1c5eec2-197fcd9b766/1c5eec2-197fcd9b766.mp4
上面是 小李 演示:Ai8051U, printf_usb("Hello World !\r\n")及usb不停电下载@AiCube之图形化程序自动生成
https://v.stcai.com/sv/1fce8086-197cf2b9dd4/1fce8086-197cf2b9dd4.mp4
上面是 小赵 演示:Ai8051U, printf_usb("Hello World !\r\n")及usb不停电下载@AiCube之图形化程序自动生成
在 STC32F12K54系列的基础上,
发展出了 STC32G144K246-LQFP100
学习打卡第二天
今天不看视频, 先来搞明白点Keil相关设置的东西
如果是从0开始写程序, 那应该注意以下设置:
官方库文件中, 还会看到这个画面
所以, 起码也要了解些32位和8位版本之间的一些联系和区别:
学习打卡第三天
今天调试不掉电下载
用官方集成的USB库? 不可能的!
看不到程序的源码, 我心里极其不踏实; 做通讯看不到中断过程, 心里也不舒服.
所以, 直接将STC32G的USB一系列源文件拿过来, 直接试:
编译后报错, 修改错误后, 直接编译成功! 下载之....
直接OK了~
因为平时使用CAN协议和MODBUS比较多, 所以, 在USB相关的中断函数中, 做了微小的修改, 使其符合MODBUS和CAN的收发机制
有需要的可以直接下载源码, 我马上上传源码上来
不喜欢用USB集成库的, 也可以使用我修改过的USB相关文件
学习打卡第四天
很久没有来了, 今天有空来继续打卡!!
今天调试一个小功能, AI8051U的串口超时中断
STC挺能把握用户心理, 这种小功能也能考虑到, 众所周知这个功能自己用定时器也能实现, 但是 现在有了这功能, 从一定程度上说 使通讯更高效了
这里我使用了官方提供的擎天柱小板的程序集改的
先大致说下我使用的配置, 后续会上传实验程序
硬件: 擎天柱 & USB转TTL & 杜邦线 & TYPE-C数据线
软件: 串口调试助手
串口: 串口2(P12&P13)
波特率: 115200
下载方式: 不停电下载
定时器: 定时器0(100us)中断
程序大致流程:
1.初始化定时器/串口2(包括超时中断, SCALE=0, 用波特率位数来计数超时, 业界好像说3.5个字节(即35位)就可以判定串口空闲)
2.主循环中每3s从串口2向电脑串口发送UART2_OTCounter(16bit的), 程序中可以看出
3.手动从串口调试助手向串口2发送任意字符串, 串口2中断程序中接受到数据就会清零UART2_OTCounter
从串口助手就可以看出超时时间是不是符合自己设定的时间, 上图:
程序中设置了超时长度控制寄存器TM=104, 即(0x68), 如图所示:
这里需要注意官方文档说明
当TM=100时, (1000000us/115200)*100 ≈ 868us
当TM=104时, (1000000us/115200)*104 ≈ 902us
由于定时器定时100us
所以在串口助手中可以看到UART2_OTCounter的值为 8(最上面) 或者 9
从而验证了串口超时中断
鉴于串口中断1个字节就会产生一个, 不如将它交给DMA来管理
所以, 后续打卡就是让DMA来管理串口中断
DMA已经存在很多年了, 但是还没有遇到非要使用DMA的场景, 期待接下来的应用了....
最后程序打包, 欢迎批评指正
页:
[1]