找回密码
 立即注册
楼主: 神***

0.99元USB-STC8H2K08U,144MHz-PWM硬件移相,51全面进入USB时代

  [复制链接]
  • TA的每日心情
    开心
    昨天 05:52
  • 签到天数: 94 天

    [LV.6]常住居民II

    10

    主题

    83

    回帖

    270

    积分

    中级会员

    积分
    270
    发表于 2024-1-10 07:01:23 | 显示全部楼层

    关于8H08U系列的串口新功能

    本帖最后由 Mr_LG 于 2024-1-10 07:02 编辑

    这两天节奏有点迟缓啊,不见动静?难道干脆在改进硬件?那就大惊喜了!
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2024-1-10 09:41:44 | 显示全部楼层
    本帖最后由 乘风飞扬 于 2024-3-22 15:56 编辑

    STC8H2K08U串口超时中断演示例程

    串口1超时中断寄存器配置:
    1.     UR1TOCR = 0xC0; //开启超时中断,SCALE(bit5) = 0:使用波特率bit时钟周期; 1:使用系统时钟周期
    2.     UR1TOTL = 0x80; //设置超时时间:128个位时钟周期=(1000000/115200)*128us
    3.     UR1TOTH = 0x00;
    4.     UR1TOTE = 0x00; //写完TE超时时间才会生效
    复制代码

    串口2超时中断寄存器配置:
    1.     UR2TOCR = 0xE0; //开启超时中断,SCALE(bit5) = 0:使用波特率bit时钟周期; 1:使用系统时钟周期
    2.     UR2TOTL = 0xE0; //0xABE0 = 44000, 超时时间 = 系统时钟周期 * 44000
    3.     UR2TOTH = 0xAB;
    4.     UR2TOTE = 0x00; //写完TE超时时间才会生效
    复制代码

    串口1中断函数处理:
    1. void UART1_int (void) interrupt 4
    2. {
    3.     if(RI)
    4.     {
    5.         RI = 0;
    6.         RX1_Buffer[RX1_Cnt] = SBUF;
    7.         if(++RX1_Cnt >= UART1_BUF_LENGTH)   RX1_Cnt = 0;
    8.     }
    9.     if(TI)
    10.     {
    11.         TI = 0;
    12.         B_TX1_Busy = 0;
    13.     }
    14.     if(UR1TOSR & 0x01)  //判定是否产生超时中断
    15.     {
    16. //        P37 = !P37;
    17.         B_RX1_OK = 1;
    18.         UR1TOSR = 0x80; //设置 RTOCF 清除超时标志位 TOIF
    19.     }
    20. }
    复制代码

    串口2中断函数处理:
    1. void UART2_int (void) interrupt 8
    2. {
    3.     if((S2CON & 1) != 0)
    4.     {
    5.         S2CON &= ~1;    //Clear Rx flag
    6.         RX2_Buffer[RX2_Cnt] = S2BUF;
    7.         if(++RX2_Cnt >= UART2_BUF_LENGTH)   RX2_Cnt = 0;
    8.     }
    9.     if((S2CON & 2) != 0)
    10.     {
    11.         S2CON &= ~2;    //Clear Tx flag
    12.         B_TX2_Busy = 0;
    13.     }
    14.     if(UR2TOSR & 0x01)  //判定是否产生超时中断
    15.     {
    16. //        P36 = !P36;
    17.         B_RX2_OK = 1;
    18.         UR2TOSR = 0x80; //设置 RTOCF 清除超时标志位 TOIF
    19.     }
    20. }
    复制代码

    参考例程: STC8H2K08U串口1串口2-超时中断与电脑收发测试-20240322.zip (15.43 KB, 下载次数: 61)

    点评

    (接楼下:)故只能使用1uS时钟。所以万望下次正式推出时增加移位时钟为超时计数单位!!  发表于 2024-1-29 20:32
    最近正式使用串口接收超时。原想用系统时钟更精准(如:22118400/115200=192,是整数)。可遇到9600bps就翻车了:22118400/9600=2304,再乘35bit时超出16位了!  发表于 2024-1-29 20:30
    谢谢!你哪来的头文件?  发表于 2024-1-10 11:05
    及时雨啊!马上来试!  发表于 2024-1-10 10:36
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2024-1-10 13:13:59 | 显示全部楼层
    使用例程包里面配套的头文件。
    在原STC8H.h头文件基础上添加STC8H2K08U特有的寄存器定义。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 05:52
  • 签到天数: 94 天

    [LV.6]常住居民II

    10

    主题

    83

    回帖

    270

    积分

    中级会员

    积分
    270
    发表于 2024-1-10 15:03:13 | 显示全部楼层
    赞一个!继续,坐等硬件奇偶校验啦。

    点评

    暂时只有接收的 硬件校验,没有发送的,等以后新产品  详情 回复 发表于 2024-1-10 15:12
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9497

    回帖

    1万

    积分

    管理员

    积分
    14071
     楼主| 发表于 2024-1-10 15:12:51 | 显示全部楼层
    Mr_LG 发表于 2024-1-10 15:03
    赞一个!继续,坐等硬件奇偶校验啦。


    截图202401101513556430.jpg


    暂时只做了 接收的 硬件奇偶校验,漏了发送的,
    就不讲有了,这个新功能-
    硬件奇偶校验,等以后新产品再有
    ===其实一般都是 CRC 校验


    点评

    哦,知道了。  发表于 2024-1-10 18:47
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 05:52
  • 签到天数: 94 天

    [LV.6]常住居民II

    10

    主题

    83

    回帖

    270

    积分

    中级会员

    积分
    270
    发表于 2024-1-10 18:53:55 | 显示全部楼层
    盼望硬件奇偶校验的原因:
    1,有些485通信协议的产品,上位机被”规定“为”奇“或”偶“校验;
    2,又想动用DMA传送,此时没有硬件自动奇偶校验,就不能发挥DMA的全部优势(还得每个字节响应接收中断)!
    3,我有个应用同,需要借第9位来标识字节流的序号的奇偶性。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9497

    回帖

    1万

    积分

    管理员

    积分
    14071
     楼主| 发表于 2024-1-10 18:59:51 | 显示全部楼层
    1,用管脚兼容的 STC32
    2,  舍弃 硬件奇偶校验 用 CRC 校验

    3,先量产这个 STC8H2K08U-45I-TSSOP20/SOP16 的 A版
    ===后续 STC8H2K32U-45I-LQFP32 出来 再 改版 STC8H2K08U

    另外 STC8H2K08U-45I-TSSOP20/SOP16
    ===接收的 硬件奇偶校验 是有的,缺了发送的
    ===明这部分开放出来

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 05:52
  • 签到天数: 94 天

    [LV.6]常住居民II

    10

    主题

    83

    回帖

    270

    积分

    中级会员

    积分
    270
    发表于 2024-1-11 06:23:17 | 显示全部楼层
    本帖最后由 Mr_LG 于 2024-1-11 06:44 编辑

    在一个创新活力澎拜的团队内,对老型号产品的提升是一种“痒”或者说“瘾”,呵呵,有体会!
    因此,产品线之间功能上的“跨界”现象,实在是在所难免!
    但还是要好好斟酌,“S”、“T”、“U”,乃至“L”、“C”、“D”、这些尾缀的区分,尽量让用户方便选型。


    我瞎说说啊:C给LCD,E给LED,D给DMA,S还给串口(未来均增强),T给触摸屏,U给USB。。。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2024-1-11 17:57:36 | 显示全部楼层
    STC8H2K08U串口接收硬件奇偶校验演示例程

    注:STC8H2K08U-A版本-大量生产的版本,
    ===新增 串口接收硬件奇偶校验
    ===串口发送的硬件奇偶校验位自动产生,暂时没有,需要软件处理,后续B版本再增加这个。

    通过定义使能奇偶校验:
    1. #define NONE_PARITY     0       //无校验
    2. #define ODD_PARITY      1       //奇校验
    3. #define EVEN_PARITY     2       //偶校验
    4. #define PARITYBIT       ODD_PARITY  //定义校验位
    复制代码

    串口1硬件奇偶校验寄存器配置:
    1. #if (PARITYBIT == NONE_PARITY)
    2.     USARTCR2 = 0x00;    //禁止硬件产生奇偶校验
    3. #elif (PARITYBIT == EVEN_PARITY)
    4.     //串口1(模式3:可变波特率9位数据)
    5.     SCON |= 0xc0;
    6.     USARTCR2 = 0x04;    //使能硬件产生偶校验
    7. #elif (PARITYBIT == ODD_PARITY)
    8.     //串口1(模式3:可变波特率9位数据)
    9.     SCON |= 0xc0;
    10.     USARTCR2 = 0x06;    //使能硬件产生奇校验
    11. #endif
    复制代码

    串口2硬件奇偶校验寄存器配置:
    1. #if (PARITYBIT == NONE_PARITY)
    2.     USART2CR2 = 0x00;    //禁止硬件产生奇偶校验
    3. #elif (PARITYBIT == EVEN_PARITY)
    4.     //串口2(模式1:可变波特率9位数据)
    5.     S2CON |= 0x80;
    6.     USART2CR2 = 0x04;    //使能硬件产生偶校验
    7. #elif (PARITYBIT == ODD_PARITY)
    8.     //串口2(模式1:可变波特率9位数据)
    9.     S2CON |= 0x80;
    10.     USART2CR2 = 0x06;    //使能硬件产生奇校验
    11. #endif
    复制代码

    参考例程: STC8H2K08U-串口1串口2-接收硬件奇偶校验-发送软件奇偶校验.zip (15.95 KB, 下载次数: 46)


    点评

    好!赞一个!  发表于 2024-1-11 18:44
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9497

    回帖

    1万

    积分

    管理员

    积分
    14071
     楼主| 发表于 2024-1-12 15:16:02 | 显示全部楼层
    网友 立创版 即将开源作品
    截图202401121514454891.jpg


    截图202401121515576331.jpg

    截图202401121517542620.jpg



    点评

    呵呵,受众是形形色色的,我倒希望在“S-TXD2”和“S-VCC”之间再加个GND。 如此可“拖”两块目标板。  发表于 2024-1-12 18:47
    我喜欢这小个子!越小越好。  发表于 2024-1-12 18:43
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-19 02:41 , Processed in 0.077511 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表