首先、我对微控制器开发不熟悉、因此请原谅我这个简单的问题。 我正在尝试为我的第一个机器人团队学习、以便我们可以使用 MSP430来处理一些额外的传感器。
我正在努力了解/配置统一时钟系统。 我希望它在39MHz 设置下运行。 我一直在阅读 系列指南 和器件专用数据表。 我认为我有一个基本的理解。 我的代码如下:
/* 目标:使 SMCLK 以39MHz 的频率运行以驱动 SPI */WDTCTL = WDTPW | WDTHOLD;//停止看门狗定时器 _bis_SR_register (SCG0);//禁用 FLL UCSCTL0 = DCO0+DCO1+DCO2+DCO3+DCO4;//禁用 FLL UCSCTL0 = DCO0+DCO0位[WDCO0+DCOS1+DCOS1+DCOS]0不起作用;// DCOL = DCOL 位 DCO 6 = DCOL //在 www.ti.com/.../msp430f5529.pdf 页上选择频率范围 UCSCTL2 = 0x000;//选择无环路分频 器 UCSCTL3 |= SELREF_2;//将 FLL 引用设置为 REFOCLK (仅限内部) UCSCTL4 |= 不相关的__DCOCLK;//选择 SMCLK 时钟源为 DCOCLK P1DIR |= 2;/ BIT2; //将 P2.2设置为输出方向以监控时钟 P2SEL |= BIT2;//选择 P2.2作为 SMCLK 输出(在 www.ti.com/.../msp430f5529.pdf pg 84 __BIC_SR_register (SCG0)中定义);//启用 FLL
但是、该剂量不起作用、因为我的示波器无法从 P2.2读取。 当我把 UCSCTL0更改为0x000时、它起作用、但只在~7.x MHz 时运行。 通过调试器查看寄存器值时、除 USCSTL0外、所有 USCSTLx 寄存器都是正确的。 我认为这可能不是我认为的工作方式。 请有人解释 UCSTL0是如何配置的、我需要做什么才能使它以39MHz 的频率运行?