[关闭]
@floatsd 2015-12-29T14:31:47.000000Z 字数 4470 阅读 1483

实验一 GPIO流水灯

CM4实验报告


实验目的

  • 把CCS安装好,熟悉CCS操作,编译界面
  • 创建工程,开始学习TM4C1294软件开发过程
  • 了解GPIO的概念,学会查找端口功能,调用GPIO库函数让LED跑起来

实验原理

系统时钟

  1. /*******************************************************************
  2. * 函数: Clock_Init()
  3. * 描述: 配置使能系统时钟
  4. * 输入值:无
  5. * 返回值:无
  6. *****************************************************************/
  7. void Clock_Init(){
  8. SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |//外部时钟25MHz
  9. SYSCTL_OSC_MAIN |//OSC时钟源选择主振荡器作为OSC
  10. SYSCTL_USE_PLL |//采用锁相环PLL作为系统时钟源
  11. SYSCTL_CFG_VCO_480), //压控振荡器频率480MHz
  12. sysClock_Fr);//设定系统频率为sysClock_Fr
  13. }

GPIO

信号 端口 信号 端口
LED0 PF1 LED1 PF2
LED2 PF3 LED3 PL0
LED4 PL1 LED5 PL2
LED6 PL3 LED7 PL4
  1. /*******************************************************************
  2. * 函数: LED_Init()
  3. * 描述: LED的配置及初始化
  4. * 输入值:无
  5. * 返回值:无
  6. *****************************************************************/
  7. void LED_Init()
  8. {
  9. //使能GPIOF和GPIOL模块
  10. SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
  11. SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOL);
  12. //将8盏LED配置为输出模式(GPIO管脚方向)
  13. GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE,
  14. GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);
  15. GPIOPinTypeGPIOOutput(GPIO_PORTL_BASE,
  16. GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4);
  17. }

实现功能

实验代码

  1. /*******************************************************************
  2. * 函数: LED_ON(uint8_t NumLED)
  3. * 描述: 点亮某一盏LED灯
  4. * 输入值:uint8_t NumLED
  5. * 返回值:无
  6. *****************************************************************/
  7. void LED_ON(uint8_t NumLED){
  8. switch(NumLED){
  9. case 0: GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,GPIO_PIN_1);break;
  10. case 1: GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,GPIO_PIN_2);break;
  11. case 2: GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,GPIO_PIN_3);break;
  12. case 3: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_0,GPIO_PIN_0);break;
  13. case 4:GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_1,GPIO_PIN_1);break;
  14. case 5: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_2,GPIO_PIN_2);break;
  15. case 6: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_3,GPIO_PIN_3);break;
  16. case 7: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_4,GPIO_PIN_4);break;
  17. default: ledclose();break; //让所有灯灭的一个函数
  18. }}
  1. /*******************************************************************
  2. * 函数: LED_OFF(uint8_t NumLED)
  3. * 描述: 不亮某一盏LED灯
  4. * 输入值:uint8_t NumLED
  5. * 返回值:无
  6. *****************************************************************/
  7. void LED_OFF(uint8_t NumLED){
  8. switch(NumLED){
  9. case 0: GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0x00);break;
  10. case 1: GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,0x00);break;
  11. case 2: GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,0x00);break;
  12. case 3: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_0,0x00);break;
  13. case 4: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_1,0x00);break;
  14. case 5: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_2,0x00);break;
  15. case 6: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_3,0x00);break;
  16. case 7: GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_4,0x00);break;
  17. default: ledclose();break; //让所有等灭的一个函数
  18. }}
  1. /*******************************************************************
  2. * 函数: Delay(uint32_t CountMs)
  3. * 描述: 延时
  4. * 输入值: uint32_t CountMs
  5. * 返回值: 无
  6. *****************************************************************/
  7. void Delay(uint32_t CountMs){
  8. SysCtlDelay(CountMs*sysClock_Fr/3000);
  9. }

实验结论

  1. void GPIOPin Type ADC (uint32_t ui32Port, uint8_t ui8Pins)
  2. void GPIOPin Type CAN (uint32_t ui32Port, uint8_t ui8Pins)
  3. void GPIOPin Type CIR (uint32_t ui32Port, uint8_t ui8Pins)
  4. void GPIOPin Type Comparator
  5. void GPIOPin Type EPI
  6. void GPIOPin Type Ethernet LED
  7. void GPIOPin Type Ethernet MII
  8. void GPIOPin Type GPIOInput
  9. void GPIOPin Type GPIOOutput
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注