tm4c123单片机的一段代码
时间: 2023-07-29 15:12:45 浏览: 54
这段代码是 TIVA TM4C123 系列单片机中的系统时钟设置函数,用于配置系统时钟源和分频系数等参数。
具体来说,该函数使用了以下四个参数:
- SYSCTL_SYSDIV_5:设置系统时钟分频系数为5,即将系统时钟从外部晶振频率分频5倍。
- SYSCTL_USE_PLL:使用PLL锁相环作为系统时钟源。
- SYSCTL_OSC_MAIN:将外部晶振作为PLL锁相环的输入时钟源。
- SYSCTL_XTAL_16MHZ:指定外部晶振频率为16MHz。
因此,这段代码的功能是将系统时钟设置为外部16MHz晶振经过PLL锁相环分频5倍后得到的时钟信号。这个时钟信号将作为系统的主时钟源,用于驱动CPU、外设等硬件模块的运行。
相关问题
单片机 tm4c123gxl 学习 例程 csdn
TM4C123GXL是一款单片机开发板,常用于学习和应用开发。在CSDN(中国专业的IT技术社区)上可以找到大量与TM4C123GXL单片机有关的学习例程。这些例程包括了各种基础的代码实现和应用案例,供开发者学习和参考。
学习例程通常分为不同的主题,例如GPIO(通用输入输出)、UART(串口通信)、ADC(模数转换器)等等。每个主题下都有相应的例子,可以帮助开发者理解和掌握相关的知识和技巧。
通过CSND上的例程,我们可以学习到如何初始化TM4C123GXL开发板,配置各个外设的功能和参数,并实现一些简单但有实际应用价值的功能。这些例程一般包含了详细的代码注释,以及相应的原理和解释,有助于我们理解代码的作用和实现方法。
在学习的过程中,我们可以逐步了解并学习各个主题的例程,通过实践和调试来加深对单片机的理解和应用。同时,我们可以根据需求自行扩展和修改例程,实现更加复杂和实际的应用需求。
总而言之,通过在CSDN上学习TM4C123GXL的例程,我们可以快速入门并掌握单片机的基础知识和开发技术。这不仅对于学习和理解嵌入式系统原理和应用有帮助,还能为我们今后在嵌入式领域的应用开发提供很好的基础。
ek-tm4c123gxl的OLED代码
EK-TM4C123GXL是德州仪器(TI)推出的一款基于ARM Cortex-M4内核的微控制器开发板,而OLED则是一种显示屏,常用于显示文字和图像。在使用EK-TM4C123GXL开发板进行OLED显示时,需要使用相应的驱动程序。以下是一个简单的OLED显示代码示例:
```
#include "inc/hw_memmap.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "driverlib/ssi.h"
#define SSI0_BASE GPIO_PORTA_BASE
#define SSI0_CLK GPIO_PIN_2
#define SSI0_FSS GPIO_PIN_3
#define SSI0_RX GPIO_PIN_4
#define SSI0_TX GPIO_PIN_5
void OLED_Init(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOA));
GPIOPinConfigure(GPIO_PA2_SSI0CLK);
GPIOPinConfigure(GPIO_PA3_SSI0FSS);
GPIOPinConfigure(GPIO_PA4_SSI0RX);
GPIOPinConfigure(GPIO_PA5_SSI0TX);
GPIOPinTypeSSI(GPIO_PORTA_BASE, SSI0_CLK | SSI0_FSS | SSI0_RX | SSI0_TX);
SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_SSI0));
SSIConfigSetExpClk(SSI0_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, 1000000, 8);
SSIEnable(SSI0_BASE);
}
void OLED_WriteCmd(uint8_t cmd)
{
GPIOPinWrite(GPIO_PORTA_BASE, SSI0_FSS, 0);
SSIDataPut(SSI0_BASE, 0x00);
SSIDataPut(SSI0_BASE, cmd);
while(SSIBusy(SSI0_BASE));
GPIOPinWrite(GPIO_PORTA_BASE, SSI0_FSS, SSI0_FSS);
}
void OLED_WriteDat(uint8_t dat)
{
GPIOPinWrite(GPIO_PORTA_BASE, SSI0_FSS, 0);
SSIDataPut(SSI0_BASE, 0x40);
SSIDataPut(SSI0_BASE, dat);
while(SSIBusy(SSI0_BASE));
GPIOPinWrite(GPIO_PORTA_BASE, SSI0_FSS, SSI0_FSS);
}
void OLED_Clear(void)
{
uint8_t i,j;
for(i=0;i<8;i++)
{
OLED_WriteCmd(0xb0+i);
OLED_WriteCmd(0x00);
OLED_WriteCmd(0x10);
for(j=0;j<128;j++)
OLED_WriteDat(0x00);
}
}
void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr,uint8_t size,uint8_t mode)
{
uint8_t i,m,temp,size1;
size1 = (size / 8 + ((size % 8) ? 1 : 0)) * (size / 2); //计算字符所占的字节数
chr = chr - ' '; //获取偏移后的值
for(i=0;i<size1;i++)
{
switch(size)
{
case 12:
temp = asc2_1206[chr][i];
break;
case 16:
temp = asc2_1608[chr][i];
break;
default:
return;
}
for(m=0;m<8;m++)
{
if(temp & 0x80)
OLED_DrawPoint(x+m,y+i,mode);
temp <<= 1;
}
}
}
void OLED_DrawPoint(uint8_t x,uint8_t y,uint8_t mode)
{
uint8_t page = y/8;
uint8_t column = x;
OLED_WriteCmd(0xb0+page);
OLED_WriteCmd(column&0x0f);
OLED_WriteCmd(((column&0xf0)>>4)|0x10);
if(mode == 1)
OLED_WriteDat(0xff);
else
OLED_WriteDat(0x00);
}
void OLED_ShowString(uint8_t x,uint8_t y,char *chr,uint8_t size,uint8_t mode)
{
while((*chr)!='\0')
{
if(x > 120)
{
x = 0;
y += size;
}
if(y > 56)
{
y = x = 0;
OLED_Clear();
}
OLED_ShowChar(x,y,*chr,size,mode);
x += size / 2;
chr++;
}
}
int main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ); //设置系统时钟为16MHz
OLED_Init(); //初始化OLED
OLED_Clear(); //清屏
OLED_ShowString(10,10,"Hello World!",16,1); //显示字符串
while(1);
}
```
该代码中包含了OLED初始化函数、清屏函数、显示字符函数、绘制点函数和显示字符串函数等,可以根据自己的需求进行相应的修改。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)