STC
文章平均质量分 82
LostSpeed
c++ coder
展开
-
STC15 - C51 - 操作寄存器时, 不要操作不相关的位
在集成模块代码, 突然发现了一个奇怪的现象, 过了一段初始化代码(初始化T0定时器)后, 串口打印不出东西了.反复确认, 在这段初始化代码前面, 就可以串口输出, 过了这段初始化代码, 就不能串口输出. 这段初始化代码一定有问题.我整的这个测试工程中, 因为要根据不同的功能, 去执行不同的初始化, 我其他地方还有一段T0初始化代码, 在初始化后, 是可以串口输出的.原创 2022-12-16 15:15:05 · 587 阅读 · 0 评论 -
STC15 - C51 - 在中断函数中, 不能再关中断
在集成一些模块代码, 多个模块都使用了同一个中断函数. 就定义了一个中断回调指针给多个模块用.谁用这个回调, 谁就将这个回调赋值为自己实现的回调函数地址.测试了一下, 发现这招虽然好使, 但是会引起其他模块逻辑功能失效.用排除法发现, 在中断中关中断会引起问题. 如果中断回调中有关于计时器重装之类的操作, 就会受影响.所以, 最好不要在中断处理中关全局中断.原创 2022-12-15 17:11:15 · 866 阅读 · 0 评论 -
STC15 - C51 - in the map file, GAP is what ?
在用IAP15F2K61S2写测试程序, 因为内部扩展RAM(X:0x0 ~ X:0x400)不够用了, 看mapfile, 变量已经分配到(X:0x400 ~ X:0x6ff)中了.因为(X:0x400 ~ X:0x6ff)是IAP15F2K61S2自己用的, 一旦自己的逻辑实现读写(X:0x400 ~ X:0x6ff), 就会使单步调试中断, 丢失调试的连接.发现丢失调试连接后, 大概也能猜到用到了(X:0x400 ~ X:0x6ff), 去看map文件, 果真如此.原创 2022-12-12 19:09:27 · 464 阅读 · 0 评论 -
STC15 - C51 - Memory Models
在STC上测试呢, 想看看变量(不同类型的定义)被编译器分配在哪个内存范围(idata, pdata, xdata)?同时, 总结一下降低内存用量的思路(如果像上位机那样内存管够, 就不用考虑内存用量的优化).原创 2022-12-08 15:46:52 · 857 阅读 · 0 评论 -
STC15 - ExternalRAM_enable()/InternalRAM_enable()
发现使用STC15的外部扩展内存和内部扩展内存时, 有一些问题(访问xdata不是100%好使, 这不是STC的问题, 而是使用问题). 实验总结一下.MDK5STC15F2K60S2(直接跑程序)IAP15F2K61S2(仿真单步调试)STC15函数库STC15实验箱4看看STC15F2K60S2和IAP15F2K61S2的规格区别可以看出, IAP15比STC15程序空间大1K, 其他基本一致.可以看出如果没有外接片外RAM, 只能使用0x400(1KB)大小的RAM(xdata)区域.原创 2022-12-07 14:48:55 · 537 阅读 · 0 评论 -
STC - 同时外挂扩展RAM和12864时, C库函数失效的问题
在写STC15实验箱4的出厂测试程序.发现memset(buf, 0, 256)一片256字节的xdata内存时, 无法将这片内存全部清0, 只清了不到0x20个字节.其他标准C库函数e.g. sprintf, strlen 也不好使. 这咋玩啊?后来通过换件法得知, 是外挂的32KXRAM和外挂的ST7920-12864都在使用P0和P2口引起的问题.STC官方整出这样的原理图, 真是败笔.怪不得我买的其他STC官方板子, 都没有焊接外挂RAM的芯片…尝试分析和折中解决这个问题.原创 2022-12-02 12:38:45 · 916 阅读 · 0 评论 -
stc15 - ST7920-12864并口通讯和串口通讯的整理(在一个实现中)
为板子写测试程序, 整到12864 LCD这里.STC原厂工程只提供并口通讯.找了网上同学的串口通讯实现, 整理了一下, 将串口通讯和并口通讯放在在一个实现中.在程序中, 轮流调用串口通讯和并口通讯来点亮ST7920-12864 LCD.在STC官方工程上改的, 测试好使.等下一步, 我将这个ST7920-12864实现迁移到我的出厂测试程序中, 将变量都移动到XDATA, 再节省一些data空间.实际用的时候, 可以选串行方式或并口方式, 给初始化函数的参数不同ST7290_Init(is_S原创 2022-11-30 20:23:09 · 1442 阅读 · 0 评论 -
debug - JLX12864C(ST7920-12864)液晶屏不能使用串行通讯的原因
正在给板子写出厂测试程序, 买的12864型号是JLX12864C.STC官方给的例程是并行通讯, 好使.但是想在测试程序中改为串行通讯, 这样就不会和外接的XRAM的读写冲突.找了前面同学写好的串行通讯例程, 将控制引脚都改成和原理图一样的管脚, 测试不好使.写测试程序, 单独测试P2, 看看是否写入的值和读出的值一样?结果发现 PSB(P2^4)写入0, 读出的是1.PSB设置为1时, 是ST7920-12864的并行通讯方式.原创 2022-11-29 18:41:05 · 743 阅读 · 0 评论 -
Keil C51 - ERROR L107: ADDRESS SPACE OVERFLOW
在给一个做好的板子写出厂测试程序. 一共要写20个测试功能.MCU为STC15F2K60S2. 编译器为 MDK5(keil C51)SEGMENT:?DT?DT?ADC可以看到 data 超过了127, xdata不到2048, code不到64K.在网上查了资料, L07的错误原因: 不是RAM超了, 就是ROM超了.我这的情况是data超过了127bytes.原创 2022-11-04 13:00:41 · 7669 阅读 · 0 评论 -
STC - STC15库函数实验 - 用表驱动来实现串口应答
准备用STC15库函数写个板子的测试程序.今天将串口命令的收发的架子整完了, 有点收获.原创 2022-10-31 21:35:23 · 560 阅读 · 0 评论 -
STC - STC15官方库函数 - 串口操作修改
STC15官方库为 STC15-SOFTWARE-LIB-V1.0.rar, 解开后的文件夹为 STC15系列库函数与例程测试版V2.0.板子做好了, 在用STC官方库函数写一个出厂测试程序. 写好之后, 只要烧录一个出厂测试程序, 就可以通过半自动测试, 很快能知道焊好的板子元件功能是否正常. 如果不正常, 是哪个元件的操作不正常. 这个时间划算.刚开个头, 第一步是将下位机的信息上报到PC机的串口助手.但是发现官方库函数的实现有点问题. 将全局buffer sprintf之后, 用串口发送到上位机,原创 2022-10-30 22:46:43 · 1913 阅读 · 0 评论 -
1602A如果不点背光,啥也看不见
买的1602A到货了, 用STC15实验箱4的官方自带的demo工程试了一下, 居然没反应.看了一下, 好像点亮背光这里有点怪, 只给了1602的15脚A一个高, 但是却没操作1602的16脚K.尝试给1602的16脚低电平, 搞定.就是说, 官方demo没问题, 可能是原版的官方板子用的1602模块的K和GND已经在模块内部连上了. 所以不需要操作K脚.而我买的1602A是有K脚的, 所以要显势操作K脚.官方1602引脚插座图:可以看到16脚是不使用的.原创 2022-10-24 22:38:53 · 525 阅读 · 0 评论 -
如果发现薅来的封装是错误的,请不要怪羊
板子上用了一个薅来的红外发射管的封装, 用程序调试时, 发现已经发了红外码, 但是收不到.例程是开发板上的现成代码, 工程没问题. 那就是硬件有问题了. 开始查.最后发现是当时从元件销售商下载的原始封装就错了, 这事弄的. 不过下载封装时, 人家有免责声明的. 即使没有免责声明, 咱是薅羊毛的, 哪能怪🐏呢? 只能怪自己不仔细.所以不管是啥板子, 没有调试通的时候, 不要冲动去做批量. 头一版的板子, 总能找出错误的.很羡慕有的大神可以一版通过.这板子是个开发板, 原理图都是抄的, 除非自己抄错了(前原创 2022-10-21 21:40:57 · 415 阅读 · 0 评论 -
STC - 非标连接的7段数码管赋值
按照STC官方资料(), 做好了STC15实验箱4的板子.解开后, 里面有原理图和程序.第3个例程(03-HC595驱动8个数码管)是数码管的显示例程.在板子上原来按照原理图焊接了共阴极数码管, 只有一部分值显示正确. 查了官方demo, 看到官方给的数码管显示值是共阴极数码管的值, 没错.从网上下载了一个大神写的数码管计算器, 好用, 也能看出代码没错. 给的是共阴极数码管标准的值.先怀疑是数码管问题(接触不好?坏了?焊接的是共阳极的数码管?).原创 2022-10-18 23:16:36 · 520 阅读 · 0 评论 -
C51 - SFR不能作为函数入参传递的解决思路
STC15的板子弄好了, 正在用STC官方封装的STC15库做实验.想将SFR或bit*作为参数给函数, 编译报错, 不允许这么搞.查了资料, 确实这么回事.但是没看到有人说如何解决这个问题.看了STC15官方库的封装, 解决的方法: 传一个index给函数, 在函数中, 根据这个index再操作具体的SFR.原创 2022-10-17 18:58:19 · 574 阅读 · 0 评论 -
STC官网首页资源整理
前言最近准备换STC的MCU做实验。去STC官网看了一下,眼花缭乱,看懵了。虽然干货不少,但是内容呈现非常混乱。无语了。将首页的静态页面(http://stcmcudata.com/)另存到本地,用了1天,用vscode + 高亮插件,将所有资源都整理到本地的excel表格中,将STC官网首页的资源都列出来。整理好的资源表格大部分资源有效。如果有无效的资源,也可以拿关键字再去网上找找有没有好心人整理过。资源描述资源URL备注首页http://stcmcudata.co原创 2022-03-17 18:35:51 · 27951 阅读 · 0 评论