bxCAN exemple1:
这个例子展示了如何使用STM32的BxCAN模块来收发数据。在本例中,BxCAN模块工作在loopback模式下,即从接收端接收从发射段发出的数据,实现自发自收。运行程序以后,首先,模块将以100Kbit/s的波特率传输一帧标准数据。等待传输完成以后,在接受段接收并核对这帧数据,根据结果判断传输正确与否并亮起相应的LED。
随后,模块将以500Kbit/s的波特率传输一帧扩展数据,这次,接受端在收到收据以后,将产生一个中断,在中断中核对这帧数据。也根据结果判断传输正确与否并亮起相应的LED。
对于EKSTM32F,由于4个LED分别被连接在管脚PC.04 – PC.07,而在STM32-EVALB上,4个LED连接在PC.06 – PC.09。我们对上述程序只需要作相应的改动即可。
运行程序,我们发现版上LD5和LD4亮起,这标志着2次传输都成功。
-----------------------我是分隔线-----------------------------------
CortexM3 exemple1
本例示范了如何利用STM32的CortexM3内核的Bit-Band访问功能来实现对SRAM中的某个变量进行单个比特的读写修改操作。
对位于SRAM内Bit-Band的字进行操作(取值0x00或者0x01),等同于对目标变量的相应位进行同样的操作。
对应公式如下:
bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number x 4)
例如:0x23FFFFFC = 0x22000000 + (0xFFFFF*32) + 7*4
对0x23FFFFFC进行操作,等同于对位于0x200FFFFC的变量第7位进行操作。
CortexM3 exemple2
本例示范了如何修改Cortex-M3内核在Thread模式下,如何修改:
1. 将默认堆栈由main stack改为Process stack
2. 将权限由优先(Privileged)改为非优先(Unprivileged or User)
3. 将权限由非优先(Unprivileged or User)改为优先(Privileged)
-----------------------我也是分隔线---------------------------------
Debug exemple1
只有在文件stm32f10x_conf.h中定义了标签DEBUG,用户才能进入DEBUG模式。一旦定义了这个标签,程序将生成一个指向SRAM中外设结构的指针。因此我们可以简化除错过程,并且获得所有寄存器的状态。
当用户选择DEBUG模式,宏assert_param被扩展,同时运行时间检查功能也在固态函数库代码中被激活。运行时间检查功能能够检查固件函数库中所有功能函数的输入是否是正确的。
进入DEBUG模式会增加代码的大小,降低代码的运行效率。因此,我们强烈建议仅仅在除错的时候使用相应代码,在最终的应用程序中,删除它们。
在本例中,我们在程序中故意将不正确的参数赋予了某固件函数库函数。通过USART1,错误源可以显示在PC的超级终端(Hyperterminal)上。
我要赚赏金打赏帖 |
|
|---|---|
| 28BYJ-48机械臂实现人脸跟随被打赏¥24元 | |
| 基于RK3506B的片温识读功能的实现被打赏¥25元 | |
| 【瑞萨RA8D1测评】基于FreeRTOS的lvgl移植教程被打赏¥29元 | |
| 电子价签墨水屏开发被打赏¥35元 | |
| 【Ozone】RTT 打印终端使用被打赏¥29元 | |
| BMS保护板绝缘检测功能-不平衡电桥技术绝缘电阻检测设计与实现被打赏¥34元 | |
| 给28BYJ-48三自由度机械臂加一个网页控制台被打赏¥32元 | |
| 用28BYJ-48电机从零搭一台三自由度机械臂被打赏¥33元 | |
| 【英飞凌开发经验】ModusToolbox配置EdgeTalk外设被打赏¥27元 | |
| 基于BQ76952PFBR的BMS保护板热插拔损坏的原因和处理措施被打赏¥32元 | |
我要赚赏金
