MSP432P401R TI Drivers 库函数学习笔记(八)ADC
目录
- API (机翻)
- 上机实战
- 引脚配置
- ADC引脚配置
- 串口引脚配置
- 指示工作状态的LED1引脚配置
- 代码部分
- ADC初始化和读取函数
- myADC.c
- myADC.h
- 获取数据并通过串口发送
- main.c
- main.h
- 任务管理函数
- myTask.c
- myTask.h
- 串口代码
- myUart.c
- myUart.h
- 实验结果
平台:Code Composer Studio 10.4.0
MSP432P401R SimpleLink™ 微控制器 LaunchPad™ 开发套件
(MSP-EXP432P401R)
API (机翻)
ADC API 官方手册
void ADC_close (ADC_Handle handle)
关闭ADC驱动实例int_fast16_t ADC_control (ADC_Handle handle, uint_fast16_t cmd, void *arg)
在驱动程序实例上执行特定的实现特性int_fast16_t ADC_convert (ADC_Handle handle, uint16_t *value)
执行ADC转换uint32_t ADC_convertToMicroVolts (ADC_Handle handle, uint16_t adcValue)
将原始ADC数据转换为以微伏为单位的数据void ADC_init (void)
初始化ADC驱动程序ADC_Handle ADC_open (uint_least8_t index, ADC_Params *params)
初始化ADC外设void ADC_Params_init (ADC_Params *params)
将ADC_Params结构初始化为其默认值
上机实战
引脚配置
ADC引脚配置
串口引脚配置
指示工作状态的LED1引脚配置
代码部分
ADC初始化和读取函数
myADC.c
/** myADC.c** Created on: 2021年8月4日* Author: Royic*/#include "./inc/myADC.h"ADC_Handle hadc1;void My_ADC_Init(ADC_Handle *adcHandle, uint_least8_t index)
{// One-time init of ADC driverADC_init();// initialize optional ADC parametersADC_Params params;ADC_Params_init(¶ms);params.isProtected = true;// Open ADC channels for usage*adcHandle = ADC_open(index, ¶ms);
}uint32_t Get_Micro_Volts(ADC_Handle *adcHandle)
{uint16_t AdcRaw = 0;// Sample the analog output from the ThermocoupleADC_convert(*adcHandle, &AdcRaw);// Convert the sample to microvoltsreturn ADC_convertToMicroVolts(*adcHandle, AdcRaw);
}
myADC.h
/** myADC.h** Created on: 2021年8月4日* Author: Royic*/#ifndef INC_MYADC_H_
#define INC_MYADC_H_#include "./inc/main.h"// Import ADC Driver definitions
#include <ti/drivers/ADC.h>void My_ADC_Init(ADC_Handle *adcHandle, uint_least8_t index);
uint32_t Get_Micro_Volts(ADC_Handle *adcHandle);extern ADC_Handle hadc1;#endif /* INC_MYADC_H_ */
获取数据并通过串口发送
main.c
/** ======== main_tirtos.c ========*/#include "./inc/main.h"/* POSIX Header files */
#include <pthread.h>/* RTOS header files */
#include <ti/sysbios/BIOS.h>/* Driver configuration */
#include <ti/drivers/Board.h>
#include <ti/drivers/GPIO.h>#include "./inc/myTask.h"
#include "./inc/myADC.h"
#include "./inc/myUart.h"/** ======== main ========*/
int main(void)
{/* Call driver init functions */Board_init();GPIO_init();My_Task_Init(mainThread, 1, 1024);BIOS_start();return (0);
}/** ======== mainThread ========*/
void *mainThread(void *arg0)
{My_Task_Init(LED_Task, 1, 1024);My_Uart_Init(&huart1, USB_UART, 115200);My_ADC_Init(&hadc1, ADC1);while(1){UART_printf(huart1, "%d\r\n", Get_Micro_Volts(&hadc1));usleep(1000);}
}
main.h
/** main.h** Created on: 2021年8月2日* Author: Royic*/#ifndef INC_MAIN_H_
#define INC_MAIN_H_/* For usleep() */
#include <unistd.h>
#include <stdint.h>
#include <stddef.h>/* Driver configuration */
#include "ti_drivers_config.h"#endif /* INC_MAIN_H_ */
任务管理函数
myTask.c
/** myTask.c** Created on: 2021年8月2日* Author: Royic*//* POSIX Header files */
#include <pthread.h>/* RTOS header files */
#include <ti/sysbios/BIOS.h>#include "./inc/myTask.h"/* Driver Header files */
#include <ti/drivers/GPIO.h>void My_Task_Init(void *(*startroutine)(void *), int priority, size_t stacksize)
{pthread_t thread;pthread_attr_t attrs;struct sched_param priParam;int retc;/* Initialize the attributes structure with default values */pthread_attr_init(&attrs);/* Set priority, detach state, and stack size attributes */priParam.sched_priority = priority;retc = pthread_attr_setschedparam(&attrs, &priParam);retc |= pthread_attr_setdetachstate(&attrs, PTHREAD_CREATE_DETACHED);retc |= pthread_attr_setstacksize(&attrs, stacksize);if (retc != 0){/* failed to set attributes */while (1){}}retc = pthread_create(&thread, &attrs, startroutine, NULL);if (retc != 0){/* pthread_create() failed */while (1){}}
}void *LED_Task(void *arg0)
{while(1){GPIO_toggle(LED1);sleep(1);}
}
myTask.h
/** myTask.h** Created on: 2021年8月2日* Author: Royic*/#ifndef INC_MYTASK_H_
#define INC_MYTASK_H_#include "./inc/main.h"void *mainThread(void *arg0);
void My_Task_Init(void *(*startroutine)(void *), int priority, size_t stacksize);void *LED_Task(void *arg0);#endif /* INC_MYTASK_H_ */
串口代码
myUart.c
/** myUart.c** Created on: 2021年8月3日* Author: Royic*/#include "./inc/myUart.h"#include <ti/drivers/GPIO.h>UART_Handle huart1;char Uart_Rx_Buffer[Uart_Rx_Buffer_Size] = {0};void Uart_TxCallback_Func(UART_Handle handle, void *buf, size_t count)
{}void Uart_RxCallback_Func(UART_Handle handle, void *buf, size_t count)
{UART_read(huart1, Uart_Rx_Buffer, 32);
}void My_Uart_Init(UART_Handle *huart, uint_least8_t index, uint32_t BaudRate)
{UART_Params uartParams;// Initialize the UART driver. UART_init() must be called before// calling any other UART APIs.UART_init();// Create a UART with data processing off.UART_Params_init(&uartParams);uartParams.readMode = UART_MODE_CALLBACK;
// uartParams.writeMode = UART_MODE_CALLBACK;uartParams.writeMode = UART_MODE_BLOCKING;uartParams.readCallback = Uart_RxCallback_Func;uartParams.writeCallback = Uart_TxCallback_Func;uartParams.writeDataMode = UART_DATA_TEXT;uartParams.readDataMode = UART_DATA_TEXT;uartParams.readReturnMode = UART_RETURN_NEWLINE;uartParams.readEcho = UART_ECHO_OFF;uartParams.baudRate = BaudRate;// Open an instance of the UART drivers*huart = UART_open(index, &uartParams);if (*huart == NULL){// UART_open() failedwhile (1);}UART_read(*huart, Uart_Rx_Buffer, 32);
}#include <string.h>
#include <stdarg.h>
#include <stdio.h>
void UART_printf(UART_Handle handle, const char *format,...)
{uint32_t length;va_list args;char TxBuffer[32] = {0};va_start(args, format);length = vsnprintf((char*)TxBuffer, sizeof(TxBuffer)+1, (char*)format, args);va_end(args);UART_write(handle, TxBuffer, length);
}
myUart.h
/** myUart.h** Created on: 2021年8月3日* Author: Royic*/#ifndef INC_MYUART_H_
#define INC_MYUART_H_#include "./inc/main.h"// Import the UART driver definitions
#include <ti/drivers/UART.h>#define Uart_Rx_Buffer_Size 32extern char Uart_Rx_Buffer[Uart_Rx_Buffer_Size];void My_Uart_Init(UART_Handle *huart, uint_least8_t index, uint32_t BaudRate);
void UART_printf(UART_Handle handle, const char *format,...);//Example
//My_Uart_Init(&huart1, USB_UART, 115200);
//UART_write(huart1, "OK\r\n", 5);extern UART_Handle huart1;#endif /* INC_MYUART_H_ */
实验结果
接上电位器,打开上位机,转动电位器,得到如下波形
数据单位为微伏。
MSP432P401R TI Drivers 库函数学习笔记(八)ADC相关推荐
- MSP432P401R TI Drivers 库函数学习笔记(七)I2C驱动OLED屏幕
目录 API (机翻) 上机实战 引脚配置 I2C引脚配置 工作指示灯LED1引脚配置 文件结构 I2C 初始化.读写函数 myI2C.c myI2C.h OLED初始化和测试代码 main.c ma ...
- MSP432P401R TI Drivers 库函数学习笔记(六)UART 串口
目录 API (机翻) 上机实战 配置 初始化和实验 实验结果 整体代码 myUart.c myUart.h myTask.c myTask.h main.c main.h 平台:Code Compo ...
- MSP432P401R TI Drivers 库函数学习笔记(五)PWM
目录 API (机翻) 函数 上机实战 配置引脚 PWM初始化,实现简易呼吸灯的效果 实验结果 完整代码 myPWM.c myPWM.h myTask.c myTask.h main.c main.h ...
- MSP432P401R TI Drivers 库函数学习笔记(四)GPIO
目录 API 头文件 函数 (机翻) 宏 GPIO驱动程序api返回的通用状态代码 GPIO_PinConfig输出引脚配置宏 GPIO_PinConfig输入引脚配置宏 GPIO_PinConfig ...
- MSP432P401R TI Drivers 库函数学习笔记(三)认识任务的创建及图形化配置
目录 任务的简单创建 图形化配置上手 简简单单点个灯 配置引脚 建立任务 实验结果 整体代码 main.c myTask.c myTask.h 平台:Code Composer Studio 10.4 ...
- MSP432P401R TI Drivers 库函数学习笔记(二)认识TI-RTOS (TI-POSIX)
目录 简介 TI-RTOS FreeRTOS POSIX 运行时对象查看器 (Runtime Object Viewer) TI-POSIX 介绍 在源代码中使用 POSIX TI-POSIX支持的函 ...
- MSP432P401R TI Drivers 库函数学习笔记(一)导入工程模板
目录 从Resource Explorer中导入 从SDK导入 测试 平台:Code Composer Studio 10.4.0 MSP432P401R SimpleLink™ 微控制器 Launc ...
- ReactJS学习笔记八:动画
ReactJS学习笔记八:动画 分类: react学习笔记 javascript2015-07-06 20:27 321人阅读 评论(0) 收藏 举报 react动画 目录(?)[+] 这里只讨论Re ...
- 【opencv学习笔记八】创建TrackBar轨迹条
createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...
最新文章
- 艾伦人工智能研究院开源AllenNLP,基于PyTorch轻松构建NLP模型
- 数据表的三种基本操作(insert、delete、update)
- 月光博客 - 再谈软件保护中软加密和硬加密的安全强度
- hdu 1588 Gauss Fibonacci 较难
- 《javascript面向对象编程指南》读书笔记
- shell中的字符串操作
- C++STL(set……)
- 5 仓库号xxx的主数据仍然现存不能删除(慎用)
- C++ STL list 学习一
- 【ACL 2019】预训练语言模型的最新探索
- Linux下socket编程的简单实例
- http 网络异常请求处理
- DragonBones骨骼动画制作软件
- 一个字段,就可以判断是否关注公众号,你信吗
- 视频直播常见问题与解决办法汇总【系列一】
- 计算机中丢失cg,【计算机中丢失dll文件】计算机丢失dll文件_计算机中丢失cg dll-win7之家...
- 看了我的mybatis-plus用法,同事也开始悄悄模仿了
- 玩乐|杭州夏季纳凉好去处
- 嵌入式在各个行业的应用
- 天翼云、移动云ubuntu服务器分区和磁盘挂载步骤