TMS320F280049学习4:GPIO输入检测
前言
DSP的内部输入上拉是弱上拉,上拉后的电压只有2.1V左右,需要外部加上拉电阻,具体参考这篇文章。
一、工程代码
- #include "driverlib.h"
- #include "device.h"
- #define DRV_LED2_PIN 23
- #define DRV_BUTTON_PIN 11
- #define DELAY_MS(MS) DEVICE_DELAY_US((long double)MS * 1000)
- /*******************************************************************************
- * 函 数 名 : led_init
- * 输 入 : 空
- * 输 出 : 空
- * 函数功能 : LED初始化
- * 详细描述 : 空
- *******************************************************************************/
- void led_init(void)
- {
- //设置GPIO模式
- GPIO_setPadConfig(DRV_LED2_PIN, GPIO_PIN_TYPE_STD);
- //设置GPIO方向
- GPIO_setDirectionMode(DRV_LED2_PIN, GPIO_DIR_MODE_OUT);
- }
- /*******************************************************************************
- * 函 数 名 : button_init
- * 输 入 : 空
- * 输 出 : 空
- * 函数功能 : 按钮初始化
- * 详细描述 : 空
- *******************************************************************************/
- void button_init(void)
- {
- //设置GPIO模式
- GPIO_setPadConfig(DRV_BUTTON_PIN, GPIO_PIN_TYPE_PULLUP);
- //设置GPIO方向
- GPIO_setDirectionMode(DRV_BUTTON_PIN, GPIO_DIR_MODE_IN);
- }
- /*******************************************************************************
- * 函 数 名 : main
- * 输 入 : 空
- * 输 出 : 空
- * 函数功能 : 主函数
- * 详细描述 : 空
- *******************************************************************************/
- void main(void)
- {
- //初始化时钟和外设
- Device_init();
- //解锁GPIO配置
- Device_initGPIO();
- led_init();
- button_init();
- //初始化PIE并清空PIE寄存器,关闭CPU中断
- Interrupt_initModule();
- //初始化PIE向量表
- Interrupt_initVectorTable();
- //使能中断
- EINT;
- //使能调试事件
- ERTM;
- while(1)
- {
- GPIO_writePin(DRV_LED2_PIN, !GPIO_readPin(DRV_BUTTON_PIN));
- DELAY_MS(10);
- }
- }
复制代码 总结
下一步,GPIO输入中断。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |