工具/软件:TI-RTOS
您好!
对于我的项目、我必须运行 UART 的高频、例如8MHz。 如果不可能达到至少8MHz、
我修改了一个 NORTOS UART 回波示例、它在8MHz 下运行、并进行了以下修改
const eUSCI_UART_Config uartConfig = { EUSCI_A_UART_CLOCKSOURCE_SMCLK、 // SMCLK 时钟源 3、 // BRDIV 0、 // UCxBRF 0、 // UCxBRS EUSCI_A_UART_NO_奇 偶校验、 //无奇偶校验 EUSCI_A_UART_LSB_FIRST、 // LSB 优先 EUSCI_A_UART_One_stop_bit、 //一个停止位 EUSCI_A_UART_MODE、 // UART 模式 0//EUSCI_A_UART_oversampling_BAUDRATE_generation //过采样 };
int main (内部 main)()
{
(笑声)
CS_setDCOCenteredFrequency (CS_DCO_FREQUENCY 24);
(笑声)
}
到目前为止。 一切都好。 (笑声) SMLK 24MHZ 分频器为3。 我在示波器上看到频率。
问题是、我无法在 TIRTOS 中以8MHz 运行 UART。
我做了什么...
1.我在 PowerMSP432.c 中更改并重新编译 TIRTOS
PowerMSP432_PerfLevel PowerMSP432_perfLeets[NUMPERFLEVELS]={
(笑声)
{.ActiveState = AM_DCDC_VCORE1、
.VCORE = 1、
时钟源= CS_DCOCLK_SELECT、
DCORESEL = CS_DCO_FREQUENCY 48、
.DIVM = CS_CLOCK_DIVIDER_1、
DIVHS = CS_CLOCK_DIVIDER_2、
.divs = CS_clock_divider _2、
.flashWaitStates = 2、
.enableFlashBuffer = true、
.MCLK = 48000000、
.hSMCLK = 24000000、
SMCLK = 24000000、
.ACLK = 32768
}、
我 已正确更改相关阵列 const UARTMSP432_BudrateConfig uartMSP432Budrates []。
{80000、24000000、 3、 0、 0、 0}、
我可以初始化、但无法运行 UART。
在第二个 UART_WRITE 时 、UCTXIFG = 0、(UCAxIFG 寄存器)
然后选择 EXIT()。
问题
1为什么该寄存器字段为0? 我在示波器上看到发送是在 UART 线路上进行的。 一切都好?
2我是否可以简单地向 UCTXIFG 写入1? 如果是、我可以在 TIRTOS 中执行该操作吗?
谢谢