假设f28335dsp系统时钟为150mhz,sci同信波特率需设置为115200,试编写波特率设置程序片段
时间: 2024-11-29 20:38:45 浏览: 6
在F28335 DSP系统中,设置SCI串口通信波特率为115200,首先需要了解该DSP的SCI库提供的API函数来配置波特率。由于具体的API细节可能会因为软件环境(如TI的CCS或Keil uVision等)有所不同,这里提供一个通用的伪代码示例,实际操作时请替换为对应的库函数和数据结构:
```c
#include "f28335.h" // 包含必要的头文件
// 假设SCI通道已经初始化
void set SCI_BaudRate(int baudrate) {
uint32_t divisor;
// 计算分频器值
divisor = (CPUclkFreqMHz / baudrate) - 1; // CPUclkFreqMHz是150MHz
if (divisor > SCI_DIVIDER_MAX) {
// 防止分频过大导致溢出错误
printf("Error: Unable to set baud rate. Baud rate too high for the given system clock.\n");
return;
}
// 设置SCI的波特率分频器
SCI_InitStructure.SCI_BaudRate = baudrate;
SCI_InitStructure.SCI_SlotTime = 0; // 通常默认为0,不需要更改
SCI_InitStructure.SCI_WordLength = SCI_WordLength_8Bits; // 数据位长度,这里是8位
SCI_InitStructure.SCI_StopBits = SCI_OneStopBit; // 停止位
SCI_InitStructure.SCI_Parity = SCI_NoParity; // 没有奇偶校验
// 将配置应用到SCI
SCI_Init(&SCI_InitStructure);
// 确认设置成功
if (SCI_GetStatusFlags(SCI_BASE) & SCI_FLAG_UART_BUSY) {
printf("Error: Unable to set baud rate. Bus still busy.\n");
} else {
printf("SCI Baud rate set to %d bps successfully.\n", baudrate);
}
}
// 调用函数设置波特率
set(SCI_BAUD_RATE_115200); // 这里SCI_BAUD_RATE_115200是一个预定义常量等于115200
```
阅读全文