微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
您好, 登录| 注册|

STM32的学习总结~~

  • 2013-07-19 19:21
  • dulai1985

    LV.0
  • 9689

    浏览

  • 29

    回复

  • 0

    获赞

  • 先占个位置,后续边学习边更新~~

    把自己所学的,所理解的东西发出来~~

    同是电子工程师,请一定不要吝啬你的赞!

    0人已赞

    编辑 举报

    LV.1

    4014599

    1447074

    50

    421479

    说说你的看法

  • LV.

    @

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    取消
    发送
  • 现在还没有回复呢,说说你的想法

    现在还没有回复呢,说说你的想法

    全部回复(29)

  • dulai1985

    LV.1

    2013-07-25 13:13

    @dulai1985

     


      

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4018603

    1447074

    50

    421479

    取消
    发送
    12
  • 07611128

    LV.1

    2013-07-25 23:24

    @dulai1985

     


    师长啊,有点小乱啊……

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4019151

    1447074

    50

    575849

    取消
    发送
    13
  • dulai1985

    LV.1

    2013-07-26 08:44

    @07611128

    师长啊,有点小乱啊……

    说了这是学习笔记

    自己不懂的地方才发出来的哈哈~~~

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4019230

    1447074

    50

    421479

    取消
    发送
    14
  • dulai1985

    LV.1

    2013-07-31 13:21

    @dulai1985

    说了这是学习笔记

    自己不懂的地方才发出来的哈哈~~~

    #if(C# 参考) 
    如果 C# 编译器遇到最后面跟有 #endif 指令的 #if 指令,则仅当指定的符号已定义时,它才会编译这两个指令之间的代码。 与 C 和 C++ 不同,您不能对符号赋予数值;C# 中的 #if 语句是 Boolean,仅测试符号是否已定义。 例如,  复制  
    #define DEBUG // ... #if DEBUG 
        Console.WriteLine("Debug version"); #endif 
    使用运算符 ==(相等)和 !=(不相等)只能测试出结果为 true 还是 false。 True 表示符号已定义。 语句 #if DEBUG 与 #if (DEBUG == true) 的含义相同。 运算符 &&(与)和 ||(或)可用来评估多个符号是否已定义。 还可以用括号将符号和运算符分组。  
     
    结合使用 #if 与 #else、#elif、#endif、#define 和 #undef 指令,可以根据一个或多个符号是否存在来包含或排除代码。 在编译调试版本的代码或针对特定配置进行编译时,这会很有用。  以 #if 指令开始的条件指令必须用 #endif 指令显式终止。  
    #define 使您可以定义一个符号,通过将该符号用作传递给 #if 指令的表达式,使该表达式计算为 true。  
    也可以用 /define 编译器选项来定义符号。 可以用 #undef 来取消定义符号。  
    用 /define 或 #define 定义的符号与具有同一名称的变量不冲突。 即,不应将变量名传递到预处理器指令,并且只能用预处理器指令计算符号。  
    用 #define 创建的符号的范围是在其中定义该符号的文件。  
    示例  
     
    复制  
    // preprocessor_if.cs #define DEBUG #define MYTEST using System; 
    public class MyClass  { 

       static void Main()      { 
    #if (DEBUG && !MYTEST) 
            Console.WriteLine("DEBUG is defined"); #elif (!DEBUG && MYTEST) 
            Console.WriteLine("MYTEST is defined"); #elif (DEBUG && MYTEST) 
            Console.WriteLine("DEBUG and MYTEST are defined"); #else 
            Console.WriteLine("DEBUG and MYTEST are not defined"); #endif     } }  
    #endif(C# 参考) 
    #endif 指定以 #if 指令开头的条件指令的结尾。 例如,  
    #define DEBUG // ... #if DEBUG 
        Console.WriteLine("Debug version"); #endif 
    以 #if 指令开始的条件指令必须用 #endif 指令显式终止。 有关如何使用 #endif 的示例参见#if
    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4023123

    1447074

    50

    421479

    取消
    发送
    15
  • dulai1985

    LV.1

    2013-08-01 08:56

    @

     UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。 
        遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。 
         当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。 
    代码格式(以接收代码为准,接收代码与发射代码反向) 
            ①位定义 
         红外线遥控器编码原理和解码程序 - 风飘南海 - 风飘南海 
     
    单发代码格式 
    红外线遥控器编码原理和解码程序 - 风飘南海 - 风飘南海 

     
    连发代码格式 
    红外线遥控器编码原理和解码程序 - 风飘南海 - 风飘南海 
     
    注:代码宽度算法: 16位地址码的最短宽度:1.12×16=18ms 
    16位地址码的最长宽度:2.24ms×16=36ms 
    易知8位数据代码及其8位反代码的宽度和不变:(1.12ms+2.24ms)×8=27ms 
    ∴32位代码的宽度为(18ms+27ms~(36ms+27ms) 

    1. 解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。 
    2. 根据码的格式,应该等待9ms的起始码和4.5ms的结果码完成后才能读码。 
     
         如果邮购我们开发的51单片机试验板和扩展元件的网友,可以获得如上图所示的红外遥控手柄,这种遥控器的编码格式符合上面的描述规律,而且价格低廉,有32个按键,按键外形比较统一,如果用于批量开发,可以把遥控器上贴膜换成你需要的字符,这为开发产品提供了便利。 
    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4023660

    1447074

    50

    421479

    取消
    发送
    16
  • 619216213

    LV.1

    2013-08-01 21:37

    @

    给一楼正下楼,stm32寄存器操作模版,自己写的,流水灯测试程序,想要写别的功能自己修改就行stm32寄存器操作模版 
    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4024380

    1447074

    50

    428865

    取消
    发送
    17
  • dulai1985

    LV.1

    2013-08-02 08:33

    @619216213

    给一楼正下楼,stm32寄存器操作模版,自己写的,流水灯测试程序,想要写别的功能自己修改就行stm32寄存器操作模版 

    谢谢~~嘿嘿

    我这里有很多模块程序

    我只是想慢慢的学起来

    慢慢的了解这款芯片的硬件资源~~~

    不过还是谢谢~~

    有什么问题,一定会请教

    能不能留个联系方式啊~~

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4024471

    1447074

    50

    421479

    取消
    发送
    18
  • 123sky

    LV.1

    2013-08-02 15:56

    @dulai1985

    谢谢~~嘿嘿

    我这里有很多模块程序

    我只是想慢慢的学起来

    慢慢的了解这款芯片的硬件资源~~~

    不过还是谢谢~~

    有什么问题,一定会请教

    能不能留个联系方式啊~~

    可有spwm的模块程序?
    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4025077

    1447074

    50

    571754

    取消
    发送
    19
  • cunwmy

    LV.1

    2013-08-19 22:08

    @dulai1985

    (2)一个在core_m3.h中 
    /* SysTick Control / Status Register Definitions */ 定义COUNTFLAG在SysTick_CTRL寄存器中的位置 
    #define SysTick_CTRL_COUNTFLAG_Pos         16   
    #define SysTick_CTRL_COUNTFLAG_Msk    (1ul << SysTick_CTRL_COUNTFLAG_Pos) 定义CLKSOURCE在SysTick_CTRL寄存器中的位置 #define SysTick_CTRL_CLKSOURCE_Pos          2 
    #define SysTick_CTRL_CLKSOURCE_Msk    (1ul << SysTick_CTRL_CLKSOURCE_Pos)
    定义TICKINT在SysTick_CTRL寄存器中的位置  SysTick 倒数到 0 时会导致挂 
    起Systick处理器 
    #define SysTick_CTRL_TICKINT_Pos              1 
    #define SysTick_CTRL_TICKINT_Msk        (1ul << SysTick_CTRL_TICKINT_Pos) 定义ENABLE在SysTick_CTRL寄存器中的位置 使能Systick定时器 #define SysTick_CTRL_ENABLE_Pos              0 
    #define SysTick_CTRL_ENABLE_Msk        (1ul << SysTick_CTRL_ENABLE_Pos) /* SysTick Reload Register Definitions  SysTick_LOAD =0xFFFFFF */ #define 

    LZ帮忙讲解一下RTOS吧。

    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4037293

    1447074

    50

    379702

    取消
    发送
    20
  • dulai1985

    LV.1

    2013-08-20 10:13

    @cunwmy

    LZ帮忙讲解一下RTOS吧。

    嘿嘿,我也是初学者~~~
    0

    设为最佳答案

    置顶

    编辑

    删除

    举报

    #该内容仅管理员可见#

    #回复内容已被删除#

    #该内容正在审核#

    回复:

    4037520

    1447074

    50

    421479

    取消
    发送
    21
  • 现在还没有回复呢,说说你的想法

     1 2 3  
  • 回复

  • 收藏

  • 点赞

  • 举报有害信息

  • 已超出发布时间24小时,无法编辑与删除
    关于我们 联系方法 广告服务 会议服务 电子星球APP 网站地图 不良信息举报 热线:400-003-2006
    © 2002-2021 Netbroad(网博互动)公司版权所有 津ICP备 11006234号-2 联网备案号:12010402000747 增值电信业务经营许可证:津B2-20120058