Điểm trung bình được tính là trung bình có trọng số của các điểm, khi số tín chỉ / giờ là trọng số và điểm số được lấy từ bảng GPA.
Điểm trung bình được tính là trung bình có trọng số của các điểm, khi số tín chỉ / giờ là trọng số và điểm số được lấy từ bảng GPA.
Tài sản lưu động là các tài sản có thể dễ dàng chuyển đổi thành tiền mặt hoặc được sử dụng trong hoạt động kinh doanh của doanh nghiệp. Tài sản lưu động thường bao gồm tiền mặt, tài khoản ngân hàng, cổ phiếu, nợ khách hàng,… Giá trị tài sản lưu động có thể thay đổi thường xuyên tùy thuộc vào hoạt động kinh doanh của doanh nghiệp.
Trong kế toán, tài sản lưu động được chia làm 05 loại và được sắp xếp theo tính thanh khoản từ cao đến thấp như sau:
+ Tiền mặt và các khoản tương đương như chứng khoán, tiền gửi ngân,….
+ Các khoản đầu tư ngắn hạn, ví dụ như cổ phiếu ngắn hạn, trái phiếu ngắn hạn,…
+ Hàng tồn kho là hàng hóa, sản phẩm mà doanh nghiệp sở hữu và đang giữ lại để bán ra trong tương lai.
Tiền mặt có tính thanh khoản cao nhất bởi luôn luôn dùng trực tiếp để thanh toán, lưu thông, tích trữ.
Ngoài ra, chứng khoán cũng có thể xem là tài sản có tính thanh khoản. Chứng khoán có tính thanh khoản là những chứng khoán có sẵn trong thị trường cho việc bán lại dễ dàng, giá cả tương đối ổn định theo thời gian và khả năng cao để phục hồi nguồn vốn đã đầu tư ban đầu.
Hiện nay, có nhiều công thức tính thanh khoản, đơn cử như:
- Tính thanh khoản hiện thời là khả năng thanh toán nợ đến hạn, hệ số thanh toán vốn lưu động
Tỷ số thanh khoản hiện thời = Tài sản lưu động/Nợ ngắn hạn.
+ Nếu tỷ số thanh khoản hiện thời nhỏ hơn 1 là khả năng trả nợ yếu, doanh nghiệp gặp nhiều khó khăn và có nguy cơ phá sản.
+ Nếu tỷ số thanh khoản hiện thời lớn hơn 1 là doanh nghiệp có khả năng cao thanh toán các khoản nợ đến hạn
- Tính thanh khoản nhanh là tỷ số mà doanh nghiệp có thể thanh toán mà không cần xử lý hàng tồn kho.
Tỷ số thanh khoản nhanh = (Tài sản lưu động - Hàng tồn kho)/Nợ ngắn hạn = Tài sản ngắn hạn/Nợ ngắn hạn.
+ Tỷ số thanh khoản nhanh nhỏ hơn 0,5 phản ánh doanh nghiệp đang gặp khó khăn trong việc chi trả, tính thanh khoản thấp.
+ Tỷ số thanh khoản nhanh trong khoản 0,5 - 1 phản ánh doanh nghiệp có khả năng thanh toán tốt, tính thanh khoản cao.
- Tỷ số khả năng thanh toán tức thời là tỷ số thanh toán bằng tiền mặt.
Tỷ số khả năng thanh toán tức thời = Vốn bằng tiền/Nợ ngắn hạn.
Vốn bằng tiền bao gồm tiền mặt, tiền gửi ngân hàng, tiền đang chuyển, các khoản đầu tư chứng khoán ngắn hạn và các khoản đầu tư ngắn hạn khác có thể chuyển đổi thành tiền trong thời hạn 03 tháng mà không gặp rủi ro lớn.
Thanh khoản thể hiện mức độ mà một tài sản có thể được mua hoặc bán nhanh chóng trên thị trường với mức giá phản ánh giá trị nội tại của tài sản.
Tiền mặt được coi là tài sản có tính thanh khoản cao nhất vì nó có thể được chuyển đổi thành các tài sản khác một cách nhanh chóng và dễ dàng nhất. Ngoại tệ, trái phiếu chính phủ, trái phiếu doanh nghiệp, cổ phiếu,… là các loại tài sản có tính thanh khoản cao. Các tài sản như bất động sản, đồ sưu tầm, đồ mỹ nghệ đều tương đối kém thanh khoản.
Ví dụ: Anh A cần mua ô tô 1 tỷ đồng, nếu có tiền mặt thì anh A có thể mua ngay (đây được coi là có tính thanh khoản cao). Nếu không có tiền mặt nhưng anh A có miếng đất trị giá 2 tỷ đồng, muốn bán để mua xe. Sẽ dễ dàng nếu anh A có nhiều thời gian để chờ bán miếng đất rồi lấy tiền mua xe, nhưng nếu cần phải mua gấp ô tô thì buộc anh A phải hạ giá miếng đất để bán nhanh hơn, lúc này miếng đất được coi là tài sản có tính thanh khoản kém.
Đa số các project thực hiện trên STM32 khi trao đổi dữ liệu với máy tính hoặc các thiết bị khác thường sử dụng chức năng UART (Universal asynchronous receiver transmitter), tuy nhiên để thực hiện chức năng này bạn sẽ tốn 2 chân TX và RX trên chip STM32. Đồng thời UART không phải là chuẩn truyền thông nên muốn giao tiếp UART cần phải kết hợp với các IC giao tiếp như CH340 để tạo thành các chuẩn giao tiếp RS232,… Vì vậy để giảm thiểu chi phí phần cứng cũng như đơn giản hóa việc truyền/nhận dữ liệu giữa STM32 với máy tính, bài viết này sẽ hướng dẫn cách sử dụng tính năng USB CDC (Communication Device Class) trên chip STM32F103C8T6.
[HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M]
Để tạo thiết bị USB CDC cơ bản với CubeMX, các bạn thực hiện theo các bước sau:
– Ở mục RCC -> chọn Crystal Ceramic Resonator (thạch anh ngoại)
– SYS -> chọn Serial Wire (nạp code và debug)
– Kéo lên mục MiddleWares, ở mục USB_DEVICE chọn Communication Device Class (Virtual Port)
Bước 2: Chuyển qua tab Clock Configuration và cấu hình clock cho STM32 như hình dưới
– Bước 3: Chọn Project -> Setting, sau đó đặt tên cho project của bạn, chọn Toolchain là MDK-Arm 5
– Bước 4: Project -> Generate code
Sau khi tạo code từ CubeMX, các bạn build chương trình rồi load vào kit. Ra lại màn hình Desktop, kích chuột phải vào This PC chọn Manage -> Device Manager -> Ports (COM & LPT)
Nếu tại Ports (COM & LPT) xuất hiện cổng Com ảo của chip STM32 thì hệ điều hành máy tính của bạn đã tìm thấy driver phù hợp cho thiết bị USB. Còn nếu không xuất hiện cổng Com ảo bạn có thể làm như sau: vào trang https://www.st.com/en/development-tools/stsw-stm32102.html rồi chọn Get Software -> Download. Giải nén file vừa down về và thực hiện cài đặt theo hướng dẫn trong file readme.txt
Trở lại chương trình code trên phần mềm KeilC, để thực hiện việc truyền/nhận dữ liệu các bạn vào file usbd_cdc_if.c trong thư mục Application/User.
/* USER CODE BEGIN PRIVATE_DEFINES */
/* Define size for the receive and transmit buffer over CDC */
/* It's up to user to redefine and/or remove those define */
– APP_RX_DATA_SIZE và APP_TX_DATA_SIZE là kích thước của bộ đệm nhận và truyền dữ liệu. Kích thước là tùy từng user định nghĩa, bạn có thể điều chỉnh lại hoặc giữ nguyên như thiết lập ban đầu.
/* Received Data over USB are stored in this buffer */
uint8_t UserRxBufferFS[APP_RX_DATA_SIZE];
/* Send Data over USB CDC are stored in this buffer */
uint8_t UserTxBufferFS[APP_TX_DATA_SIZE];
– Dữ liệu sau khi truyền hoặc nhận được sẽ được lưu trữ ở 2 bộ đệm: UserRxBufferFS và UserTxBufferFS.
– Trong file usbd_cdc_if.c mục /* USER CODE BEGIN PRIVATE_VARIABLES */:
/* USER CODE BEGIN PRIVATE_VARIABLES */
Trong bài viết này các bạn sẽ được hướng dẫn cách truyền dữ liệu từ STM32 lên máy tính sau đó dữ liệu được truyền lại từ máy tính về STM32, quan sát quá trình truyền nhận dữ liệu thông qua phần mềm Hercules.
static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len)
– Hàm CDC_Receive_FS() dùng để nhận dữ liệu về, được gọi (callback) tự động mỗi khi có dữ liệu từ USB Stack.
static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len)
if(HAL_GetTick() - time > 1000)
for(int i = 0; i < dataSize; i++)
ReceivedData[Rxcount++] = Buf[i];
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
check = 1; //nhan biet co du lieu den
– Mỗi lần hàm CDC_Receive_FS() được gọi, dữ liệu sẽ được đưa vào mảng ReceivedData. Sau một giây biến đếm Rxcount được reset về 0 và dữ liệu trong bộ đệm sẽ bị xóa đi.
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)
Quay trở lại file main.c, các bạn include thư viện usbd_cdc_if.h để sử dụng hàm CDC_Transmit_FS()
Ở mục /* USER CODE BEGIN PV */, bạn thêm vào các biến sau:
/* Private variables ---------------------------------------------------------*/
Ở while(1), gọi lại hàm CDC_Transmit_FS() để truyền dữ liệu đi.
if(check == 1) //neu co du lieu den thi truyen di du lieu vua nhan duoc
CDC_Transmit_FS((uint8_t *)ReceivedData, strlen(ReceivedData));
for(int i = 0; i < dataSize; i++)
– Rút dây USB ra và nạp chương trình, sau đó cắm dây USB vào lại và xem kết quả.
Xem thêm: Tổng hợp các bài hướng dẫn Lập trình vi điều khiển STM32 tại đây.