在keil stm32里TIM_TimeBaseInitTypeDef是什么意思,是定义一个什么类型的变量

嘿兄弟,最近我在田里遇到了很多坑洼。
记得有一次,我们团队正在写一个基于5 1 单片机的程序,其中涉及到定时器配置的操作编程。
当时刚开始,对C语言不是很了解,所以遇到了很多问题。

当时我就是按照你说的,想直接通过信息来操作寄存器。
当时的想法是这样的:定义一个结构体,然后将电子定时器基数转换为该结构体的指针。
例如,定时器基地址为0x8 0,对应端口P0。
我用代码写了这些段落:
c 定时器配置 { 设置 无符号字符定时器Reg; };
然后我希望P0端口通过这个结构工作:
c 结构 TimerConfig 定时器配置 = (结构 TimerConfig)0x8 0; 定时器配置->timerReg = 0x5 5 ;
结果完成通过了,但是运行的时候却出了问题。
后来我向一位同事请教了专家的意见。
他说我直接使用指针来操作寄存器是错误的。
5 1 单片机有专门的指令来命令操作,不能直接赋值这样的值。
然后我惊慌失措,感觉自己又癫痫发作了。

他向我解释说5 1 单片机有这些特殊的SFR(特殊功能寄存器)操作指令。
例如,如果您直接写入 P0 代码,编译器将立即返回它以及正确操作的指令。
例如:c sfr P0 = 0x8 0; P0 = 0x5 5 ; 另一种方法是使用宏定义:
c 定义 P0((无符号)0x8 0) P0 = 0x5 5 ; 这两种方法都可以利用编译器的预编译功能来简化命令操作。

然后我仔细搜索了C语言和指针,发现在嵌入式程序中指针操作被小心翼翼地使用。
现在回想起来,真是把我吓得魂飞魄散。
如果以后遇到类似的问题我一定会更加小心。
哎,学无止境,我们要不断地吸取经验和教训。

STM32使用FreeMASTER+J-LINK+.axf文件显示数据波形

记得有一次在调试STM3 2 项目时遇到了一个难题。
程序运行正常,但在FreeMASTER中无法显示波形数据。
我在实验室里,盯着电脑屏幕,挠着头思考。
突然我意识到可能是文件路径中包含的小数点导致了问题。

那是2 01 9 年的一个下午,我坐在办公桌前,屏幕上出现了KEIL5 编译界面。
我已经尝试了无数次,但文件路径中的小数点总是跟随。
我尝试用记事本打开该文件,发现该路径实际上包含一个“\.\.\\”。
我立即将其改为“\..\..”,然后重新编译程序。
奇迹发生了。
波形数据最终出现在FreeMASTER示波器界面上。

等等,我突然想起我当时记录的时间,是下午三点二十五分。
现在回想起来,这段经历让我深刻认识到细节决定成败。